使用Typescript进行转译时如何保持ES6语法

时间:2019-06-28 14:28:58

标签: typescript

我希望我不要在这里漏掉一点。 但是在转译为JS时如何保持ES6语法。 例如,如果我编写代码:

class Person {
  public name: string;
  constructor(name: string) {
    this.name = name;
  }
}
let person = new Person('John Doe');
console.log(person.name);

TS给了我:(“ target”:tsconfig.json中的“ es6”

var Person = /** @class */ (function () {
    function Person(name) {
        this.name = name;
    }
    return Person;
}());
var person = new Person('John Doe');
console.log(person.name);

但是我希望TS给我:

class Person {
  constructor(name) {
    this.name = name;
  } 
}
let person = new Person('John Doe');
console.log(person.name);

我的tsconfig.json是这样的:

{
  "compilerOptions": {
    "target": "es6",
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "alwaysStrict": true
  }
}

P.S .:如果我运行命令:

tsc -t es6 app.ts

有效;

1 个答案:

答案 0 :(得分:2)

在命令行中指定tsconfig.json时,文件app.ts将被忽略。

tsconfig.json中,在编译器选项之后添加一个exclude部分:

{
  "compilerOptions": {
    ...
  },
  "exclude": [
    "node_modules"
  ]
}

然后,运行:tsc

另请参阅the documentation

  

使用tsconfig.json

     
      
  • 通过调用tsc 无输入文件 […]
  •   
  • 通过调用tsc 无输入文件和一个--project(或仅-p)命令行选项[…]
  •