使用TypeScript 2.0.10,我想将单独文件中的“模型”模块合并为一个单独的定义。
#include <iostream>
class wrapTable
{
private:
static constexpr int table[] { 2, 3, 5, 7, 11, 13, 17, 19 };
static constexpr int size { sizeof(table)/sizeof(table[0]) };
friend constexpr int foo (int);
};
constexpr int wrapTable::table[];
constexpr int foo (int x)
{ return (0 <= x && x < wrapTable::size) ? wrapTable::table[x] : 42; }
int main()
{
std::cout << "foo(3): " << foo(3) << std::endl; // print 7
std::cout << "foo(9): " << foo(9) << std::endl; // print 42
// compilation error: 'table' is a private member of 'wrapTable'
// std::cout << "table(3): " << wrapTable::table[3] << std::endl;
}
我必须使用相对路径导入它,例如:/lib/models
|-- model-a.ts
|-- model-b.ts
|-- model-c.ts
|-- models.ts
我想这样导入:`import {ModelA}来自“models”;
我已将所有模型合并为import {ModelA} from "../../lib/models/model-a
:
/lib/models/models.ts
models.ts
我正在使用SystemJS,所以我能够这样做:
declare module models {
export { ModelA } from "./model-a";
export { ModelB } from "./model-b";
export { ModelC } from "./model-c";
}
目前,编译将失败,因为TypeScript不知道如何查找paths: {
"*": "dist/*",
"models": "dist/models/models",
"services": "dist/services/*",
// ...
}
,但这在浏览器中工作正常我已配置SystemJS路径。有没有办法在models/*
中设置这种相同的映射?
编辑重新编写此内容。
答案 0 :(得分:0)
Disclaumer:这不使用模块!(但我认为你仍然可以达到同样的效果)。
我没有尝试使用系统JS,但这应该让打字稿很开心。
<强>模型/ index.ts 强>
parent::ul/preceding-sibling::*[1][self::a]/@name
<强>某处-else.ts 强>
import { ModelA } from './model-a';
import { ModelB } from './model-c';
export {
ModelA,
ModelB
};