1

我想将服务器端呈现的配置作为 ES6 模块传递给可以导入的 TypeScript 应用程序。使用 SystemJS 模块加载器。

配置模块直接在 index.html 中设置:

System.set(System.normalizeSync('config'), System.newModule({ foo: 'bar' })); // in the real scenario the { foo: 'bar' } is rendered by the server

然后在 main.ts

import { foo } from 'config';

这在浏览器中有效,因为 SystemJS 识别配置模块但 TypeScript 编译器抱怨:

找不到模块“配置”。

如何告诉 TypeScript index.html 中定义的“外部”自定义模块?

4

1 回答 1

2

如果config不是 typescript 模块(没有类型定义等),那么它不能像这样导入(它看起来像 ES6 导入,但实际上它不是一个)。因此,要么为它编写d.ts文件并将其放置在tsc可以找到它的地方,要么尝试使用let config = require('config'). 然后你可以使用它,但没有任何类型提示和检查。

于 2016-03-24T21:05:43.843 回答