如何在Typescript

时间:2015-12-15 12:30:20

标签: javascript typescript

我在Javascript中有以下内容:

var chartOptions = {
    chartType: settings.chartType,
}

chartOptions.func = function(chart) {
    chartOptions.fullChart = chart;
}

一切正常。

但是我想把它改成TypeScript并且是新的,我不确定如何做到这一点。请有人帮忙吗?例如,没有符号用于' func'并且没有为' fullChart'那么这怎么会在Javascript中起作用?

2 个答案:

答案 0 :(得分:5)

您可以修改代码,将属性添加到chartOptions

var chartOptions = {
    chartType: settings.chartType,
    func: null,
    fullChart: null
}

chartOptions.func = function(chart) {
    chartOptions.fullChart = chart;
}

如何将代码转换为类?它更像是TypeScript-y:)

class ChartOptions {
    public chartType;
    public fullChart;

    public func(chart: any) {
        this.fullChart = chart 
    }
}    

let chart = {};
let chartOptions = new ChartOptions();
chartOptions.func(chart);

答案 1 :(得分:0)

在设置选项之前,请考虑使用界面来定义选项。要镜像特定的代码段,可以在此处使用类型断言。

interface ChartOptions {
    chartType: string;
    func: (chart: any) => void;
    fullChart: any;
}

var chartOptions = {
    chartType: settings.chartType
} as ChartOptions

chartOptions.func = function(chart) {
    chartOptions.fullChart = chart;
}

这实际上取决于最终目标,但是如果您可以设置选项,那么您将不再需要类型断言(无论如何都要避免使用)。

interface ChartOptions {
    chartType: string;
    func: (chart: any) => void;
    fullChart?: any;
}

var chartOptions: ChartOptions = {
    chartType: settings.chartType,
    func (chart: any) {
        this.fullChart = chart;
    }
}

或者你可以像其他用户建议的那样使用一个类,这更像是你应该在这里使用的,而不是你的例子正在使用的。