我有过
import MyHtml from "./junkhtml.htm";在TypeScript文件中进行编译,因为我也有
declare module "*.htm" {
const value: string;
export default value;
}在.d.ts文件中。当我对我的项目运行垃圾记录时,我没有发现错误,但是导入被完全删除了。似乎TS认为我的导入只存在于类型声明空间中,并不代表任何真实的东西。我如何指示他们,是的,进口需要保持,以便卷(或webpack)可以处理它的下游?
这是我的tsconfig.json文件
{
"compilerOptions": {
"allowUnreachableCode": true,
"target": "esnext",
"baseUrl": "./",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"allowJs": true,
"moduleResolution": "node",
"module": "esnext",
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"typeRoots": ["./typings/modules", "./node_modules/@types"]
},
"include": ["./**/*.ts", "./**/*.tsx"],
"exclude": ["node_modules"]
}这是我用的
const gulp = require("gulp");
const gprint = require("gulp-print").default;
const ts = require("gulp-typescript");
const tsProject = ts.createProject("./tsconfig.json", { noEmitOnError: true });
const dirs = ["applicationRoot", "modules", "util"];
gulp.task("ts", () => {
var failed = false;
return gulp
.src(["./reactStartup.ts", ...dirs.map(f => `./${f}/**/*.ts`), ...dirs.map(f => `./${f}/**/*.tsx`)], { base: "./" })
.pipe(tsProject())
.pipe(gprint(filePath => "TypeScript compiled: " + filePath))
.pipe(gulp.dest(""))
.on("finish", () => {});
});发布于 2018-02-16 21:41:10
当未使用导入声明时,TypeScript将删除它们。
如果您使用了导入,那么它应该在文件转储后保持不变:
import MyHtml from "./junkhtml.htm";
// use it somehow
console.log(MyHtml);虽然在这里不适用,但在其他情况下,某些人可能只想考虑只为副作用而导入,因为这也会在转移之后维持导入:
import "./junkhtml.htm";https://stackoverflow.com/questions/48834715
复制相似问题