我在Javascript中有以下内容:
var chartOptions = {
chartType: settings.chartType,
}
chartOptions.func = function(chart) {
chartOptions.fullChart = chart;
}
一切正常。
但是我想把它改成TypeScript并且是新的,我不确定如何做到这一点。请有人帮忙吗?例如,没有符号用于' func'并且没有为' fullChart'那么这怎么会在Javascript中起作用?
答案 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;
}
}
或者你可以像其他用户建议的那样使用一个类,这更像是你应该在这里使用的,而不是你的例子正在使用的。