我想通过 ts 声明一个具有两种类型的变量。但是编译器提示错误。像这样:
interface IAnyPropObject {
[name: string]: any;
}
let a: IAnyPropObject | ((str: string) => any);
a.B = "bbbbbbbb";//tips error
a("");//tips errorRun Code Online (Sandbox Code Playgroud)
注意:我不想使用'any'来声明。我只想通过这种方式约束变量。因为代码太旧了,它们不是TS代码。
“输出”路径有什么不同?tsconfig 是一个加载器吗?运行 tsconfig 构建后,webpack 会解析“.ts”文件吗?
为什么找不到文件“src.js”?是不是被webpack自动删除了?
tsconfig.json:
{
"compilerOptions": {
"module": "amd",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "src.js",
"sourceMap": true
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
]
}Run Code Online (Sandbox Code Playgroud)
webpack.config.js:
module.exports = {
entry: './index.ts',
output: {
filename: './dest.js'
},
module: {
loaders: [{
test: /\.ts$/,
loader:'ts-loader'
}]
},
resolve: {
extensions: ['.webpack.js', '.web.js', '.ts', '.js']
}
} Run Code Online (Sandbox Code Playgroud)
当我运行“webpack”时,找不到“src.js”,而“dest.js”则正常。
多谢。