use*_*301 11 javascript typescript
这就是我在打字稿中导入app.config.ts类并使用它的方式。如何AppConfig在 Javascript 文件 (config.js) 中导入相同的类并访问该方法getConfig?
服务.ts
import { AppConfig } from '../app.config';
constructor(private http: Http, private config: AppConfig) {
this.dataURL = this.config.getConfig('restApi') + '/api/getdata/'
console.log(this.dataURL)
}
Run Code Online (Sandbox Code Playgroud)
我不知道你到底想问什么,所以我把它分成几个部分:
最好的解决方案是将 config.js 重命名为 config.ts 并将其视为打字稿文件。
即如果你有这个:
export class AppConfig {
foo: string;
bar: number;
}
Run Code Online (Sandbox Code Playgroud)
在你的 config.js 中有这样的内容:
export const Config = {
foo: 'Hello World',
bar: 42
}
Run Code Online (Sandbox Code Playgroud)
但我假设你想要类似的东西:
import { AppConfig } from './app.config'
export const Config: AppConfig = {
foo: 'Hello World',
bar: 42
}
Run Code Online (Sandbox Code Playgroud)
然后只需将 config.js 重命名为 config.ts 即可。无论如何,它必须是一个用于类型检查的打字稿文件(除非您将allowJs规则放入tsconfig.json中,但即使如此,我也不认为将.ts文件导入到.js文件中是明智的)。
由于一些技术原因,动态导入 JavaScript 文件实际上在浏览器中不起作用,其中最重要的是安全性,而且还因为 ES6 的“导入”(或节点的“require”)不在浏览器标准中。
相反,我建议您将配置转换为JSON文件并使用 JavaScript 的本机JSON.parse来解析它。IE:
http.get(this.dataUrl).toPromise().then(response => {
let config = null;
try {
config = JSON.parse(response.data);
} catch (e) {
console.error("Couldn't parse response!");
}
this.config = new AppConfig(config); // See note
}
Run Code Online (Sandbox Code Playgroud)
或类似的规定。
注意:我假设您有 AppConfig 类的副本和默认构造函数。如果你不这样做,那么你可以创建一个,创建一个解析函数或类似的东西。
| 归档时间: |
|
| 查看次数: |
21640 次 |
| 最近记录: |