编译器配置项-compilerOptions
模块相关(四)
模块后缀 - moduleSuffixes
提供一种覆盖默认文件后缀列表的方法,这种方法可以在查找解析模块时起作用。
{
"compilerOptions": {
"moduleSuffixes": [".ios", ".native", ""]
}
}
如果进行以上的设置,现在的import
语句:
import * as foo from "./foo";
TypeScript将优先查找相对文件 ./foo.ios.ts
、./foo.native.ts
,然后是./foo.ts
文件。
moduleSuffixes
配置项中的""
是必须的,如果要查找./foo.ts
文件。
这个功能对于React Native
项目非常有用,对于不同的目标平台可以使用 具有不同moduleSuffix
选项值的tsconfig.json。
禁用默认解析行为 - noResolve
默认情况下,TypeScript 将检查import
和<reference types="xxx" />
指令的初始文件集,并将这些已解析的文件添加到程序中。
如果设置了 noResolve,则不会默认检查,但是仍会检查import
语句是否可以解析为有效模块,因此您需要通过其他方式确保满足这一要求。
路径 - paths
可以设置一系列的key:value
,这些设置将重新映射那些相对文件(baseUrl
设置的目录或者tsconfig.json文件所在的目录),了解更多关于路径的配置参考moduleResolution
配置项。
paths
配置项允许设置TypeScript 如何解析 require
/imports
中导入的模块。
{
"compilerOptions": {
"paths": {
"jquery": ["./vendor/jquery/dist/jquery"]
}
}
}
以上配置可以在代码中编写import 'jquery'
,并获得正确解析。
{
"compilerOptions": {
"paths": {
"app/*": ["./src/app/*"],
"config/*": ["./src/app/_config/*"],
"environment/*": ["./src/environments/*"],
"shared/*": ["./src/app/_shared/*"],
"helpers/*": ["./src/helpers/*"],
"tests/*": ["./src/tests/*"]
},
}
上边的配置,可以让TypeScript 文件解析器支持许多自定义前缀来查找导入的模块。
注意
,此功能不会更改tsc
导入模块的方式,因此paths
作用于运行时或者打包时,让TypeScript正确查找导入的模块。
网友评论