我有Angular 7应用程序,我想从项目外部包括一些类型化的JS常量(这些常量在AngularJS应用程序中使用,因此我需要将其保留在js中)。我在tsconfig.json中的路径中定义了新路径
{
"compileOnSave": false,
"compilerOptions": {
"allowJs": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
],
"baseUrl": "src",
"paths": {
"@app/*": ["app/*"],
"@env/*": ["environments/*"],
"@dep/*": ["../../web-common/*"]
}
}
}
在@dep中,我具有包含以下内容的test.js和test.d.ts
export const TEST_CONST = {
parser: 'CSV',
styler: 'XVE'
};
和
export interface TEST_CONST {
parser: string;
styler: number;
}
但是当我导入它并开始使用
import {TEST_CONST} from '@dep/constants/test';
...
console.log(TEST_CONST.styler);
它给了我
错误TS2693:“ TEST_CONST”仅引用一种类型,但在此处用作值。
我也尝试导入' @ dep / constants / test.js ',但这是相同的...。 如何将带有类型的js文件导入Angular应用中?据我了解,这应该是可能的。
答案 0 :(得分:0)
尝试添加declare
并删除export
:
declare interface TEST_CONST {
parser: string;
styler: number;
}