Typescript 1.8引入了字符串文字类型.但是,将对象作为参数传递时,如下所示:
const test = {
a: "hi",
b: "hi",
c: "hi"
};
interface ITest {
a: "hi" | "bye"
}
function testFunc (t: ITest) {
}
testFunc(test);
Run Code Online (Sandbox Code Playgroud)
它失败了:
类型'{a:string; b:字符串; c:字符串; }'不能分配给'ITest'类型的参数.属性'a'的类型是不兼容的.类型'string'不能分配给''hi"|类型 "再见"." 类型'string'不能分配给'"bye"'.
我希望这可以工作,因为它符合界面的要求,但我可能会忽略一些东西.
我正在尝试扩展我的一个接口,但不断收到错误“{dcs:Relationship} 类型中缺少索引签名,使用以下代码段:
interface Relationship {
data: {
id: string;
type: string;
}
}
interface T {
relationships: {[key: string]: Relationship};
}
interface Test extends T {
relationships: {
dcs: Relationship;
};
}
Run Code Online (Sandbox Code Playgroud)
目标是使 T 中的关系属性成为具有任意数量的关系类型的键的对象。测试应该是类型 T 的特定实现。
不知道解决这个问题的正确方法是什么。提前致谢!
我有一些严重的问题让任何图表库与webpack + typescript一起使用.我现在正在与AmCharts合作,并且已经不得不在定义文件上工作以获得typescript编译器识别的模块语法.
我的webpack配置设置如下:
"resolve": {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.js'],
"alias": {
"config": path.join(__dirname, "../app"),
"amcharts": "amcharts3/amcharts/amcharts.js"
}
},
Run Code Online (Sandbox Code Playgroud)
在打字稿中:
import AmCharts from "amcharts";
现在,这一切都按预期编译,但是当我做一个时,
console.log(AmCharts)我留下了一个空对象.
有没有人有任何经验可以让AmCharts + webpack很好地发挥,或者是一个符合以下标准的体面的替代图表库:
提前致谢!