小编Ale*_*oni的帖子

带有duck-typed对象的Typescript字符串文字

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"'.

我希望这可以工作,因为它符合界面的要求,但我可能会忽略一些东西.

javascript typescript

10
推荐指数
1
解决办法
583
查看次数

打字稿:扩展接口时类型中缺少索引签名

我正在尝试扩展我的一个接口,但不断收到错误“{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 的特定实现。

不知道解决这个问题的正确方法是什么。提前致谢!

typescript

8
推荐指数
1
解决办法
7584
查看次数

使用Webpack + Typescript加载AmCharts

我有一些严重的问题让任何图表库与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很好地发挥,或者是一个符合以下标准的体面的替代图表库:

  1. 体面的Typescript定义支持
  2. 可通过JSON配置
  3. 与ES6/Webpack/CommonJS很好地配合使用

提前致谢!

javascript charts amcharts typescript webpack

3
推荐指数
1
解决办法
2233
查看次数

标签 统计

typescript ×3

javascript ×2

amcharts ×1

charts ×1

webpack ×1