百达冻品 發表於 2020-10-30 17:37:00

TypeScript 的尴尬:使用tsc、ts-loader、还是Babel的@babel/plugin-transform-typescript预设?

<h1 id="tsc">tsc</h1>
<p>优点:可以生成.d.ts类型声明文件。<br>
tsconfig.json:</p>
<pre><code>{
    "compilerOptions": {
      "outDir": "dist",
      "declaration": true,
      "declarationDir": "dist",
    },
    "files": ["src/index.ts"],
}
</code></pre>
<p>缺陷:不能与webpack配合使用。当然,也不是完全不能,毕竟都有watch模式。</p>
<h1 id="webpack--ts-loader">webpack + ts-loader</h1>
<p>似乎可以使用tsconfig.json文件。</p>
<h1 id="webpack--babel-loader--babelplugin-transform-typescript预设">webpack + babel-loader + @babel/plugin-transform-typescript预设</h1>
<blockquote>
<p>如果使用TypeScript(JavaScript的类型化超集),则建议使用此预设。它包含以下插件:<br>
@babel/plugin-transform-typescript<br>
该插件增加了对TypeScript编程语言使用的语法的支持。但是,此插件未添加对传递给它的JavaScript进行类型检查的功能。为此,您将需要安装和设置TypeScript。</p>
</blockquote>
<p>缺陷:</p>
<blockquote>
<p>您对tsconfig.json的更改不会反映在babel中。<br>
Changes to your tsconfig.json are not reflected in babel. The build process will always behave as though isolatedModules is turned on, there are Babel-native alternative ways to set a lot of the tsconfig.json options however.</p>
</blockquote>
<p>@see https://babeljs.io/docs/en/babel-plugin-transform-typescript#caveats</p>
<h1 id="我似乎走错了方向">我似乎走错了方向</h1>
<p>之前我的处理方法是,ts和js都用babel处理,babel添加了@babel/plugin-transform-typescript预设。<br>
但是我觉得可以让ts先用ts-loader处理,处理完之后可以主动声明让babel-loader处理,但如果不声明,会被babel处理吗,毕竟处理后的文件后缀为.js?</p>
<h1 id="end">END</h1><br><br>
来源:https://www.cnblogs.com/develon/p/13903323.html
頁: [1]
查看完整版本: TypeScript 的尴尬:使用tsc、ts-loader、还是Babel的@babel/plugin-transform-typescript预设?