【问题标题】:How can I specify boolean (true/false) options for TypeScript compiler如何为 TypeScript 编译器指定布尔(真/假)选项
【发布时间】:2016-11-18 19:29:06
【问题描述】:

我正在使用:

$ tsc --version
Version 2.0.8

并尝试像这样将--experimentalDecorators option 传递给tsc

$ tsc --experimentalDecorators true greeter.ts
//error TS6053: File 'true.ts' not found.

像这样

$ tsc greeter.ts --experimentalDecorators true
//error TS6053: File 'true.ts' not found.

像这样

$ tsc greeter.ts --experimentalDecorators=true
// error TS5023: Unknown compiler option 'experimentaldecorators=true'.

但没有运气。将选项传递给tsc 的正确方法是什么?

【问题讨论】:

    标签: typescript tsc


    【解决方案1】:

    默认情况下,布尔标志为 false,因此您无需与标志一起指定值。仅当您想将其从 false 更改为 true 时,才需要包含该标志。

    删除true

    tsc --experimentalDecorators greeter.ts
    

    对于需要字符串的编译器选项,紧跟在参数后面的值指定参数的值。例如:

    tsc --module system greeter.ts
    

    对于需要字符串数组的编译器选项,各个字符串值应以逗号分隔:

    tsc --lib es5,es6 greeter.ts
    

    如果传入的值与参数名称不匹配或未代替预期的参数值,编译器会假定传入的值是文件名。

    【讨论】:

    • 是的,它正在工作,谢谢。但是如果experimentalDecorators默认是true,那我怎么指定false呢?
    • @Maximus 默认情况下它与所有其他标志一起为 false,因此包含它会将值从 false 更改为 true。
    • 谢谢,带有字符串值的选项,如tsc --experimentalDecorators --module="system" greeter?这给出了一个错误:Unknown compiler option 'module=system'.
    • @Maximus 试试--module system。我可以理解为什么该文档令人困惑。
    • 是的,这很有效……确实令人困惑。谢谢。您能否在回答中详细说明传递选项的一般方法。比如tsc这里tsc --experimentalDecorators --module system greeter如何区分文件和选项?
    【解决方案2】:

    目前,编译器允许passing in explicit boolean values

    当您针对 tsconfig.json 进行编译并希望覆盖特定值以用于当前编译器运行时,将显式布尔值传递给编译器是一个很好的用例。

    在这种情况下,想象一下如果您的tsconfig.jsonexperimentalDecorators 设置为false,并且您想在true 不更改项目本身的情况下测试编译:

    tsc --experimentalDecorators true greeter.ts
    

    【讨论】:

      【解决方案3】:

      您可以将false 传递给标志。

      tsc --noEmit false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-05
        • 1970-01-01
        • 2013-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-20
        • 2013-06-05
        相关资源
        最近更新 更多