Javascript 如何在Typescript中实现JS函数指针
我在Javascript中获得了以下内容:Javascript 如何在Typescript中实现JS函数指针,javascript,typescript,Javascript,Typescript,我在Javascript中获得了以下内容: var chartOptions = { chartType: settings.chartType, } chartOptions.func = function(chart) { chartOptions.fullChart = chart; } 这一切都很好 但是我想把它改成TypeScript,作为一个新手,我不知道该怎么做。有人能帮忙吗?例如,“func”没有符号,“fullChart”也没有符号,那么在Javascrip
var chartOptions = {
chartType: settings.chartType,
}
chartOptions.func = function(chart) {
chartOptions.fullChart = chart;
}
这一切都很好
但是我想把它改成TypeScript,作为一个新手,我不知道该怎么做。有人能帮忙吗?例如,“func”没有符号,“fullChart”也没有符号,那么在Javascript中这是如何工作的呢?您可以通过将属性添加到
图表选项中来修复代码:
var chartOptions = {
chartType: settings.chartType,
func: null,
fullChart: null
}
chartOptions.func = function(chart) {
chartOptions.fullChart = chart;
}
将代码转换为类怎么样?更像是TypeScript-y:)
在设置选项之前,请考虑使用接口定义选项。要镜像特定代码段,可以在此处使用类型断言
interface ChartOptions {
chartType: string;
func: (chart: any) => void;
fullChart: any;
}
var chartOptions = {
chartType: settings.chartType
} as ChartOptions
chartOptions.func = function(chart) {
chartOptions.fullChart = chart;
}
这实际上取决于最终目标,但是如果您可以设置开始的选项,那么就不需要类型断言(无论如何都要尽可能避免)
或者您可以按照其他用户的建议使用一个类,它更像您应该在这里使用的,而不是您的示例所使用的。不清楚您在这里要问什么。你是在要求解释代码吗?typescript与此有什么关系?“func”或“fullChart”没有符号是什么意思?您已将它们声明为chartOptions
对象的属性。当我将上述逻辑放入Typescript时,编译器返回一个错误,它无法解析符号“func”和“fullChart”。我需要做什么来纠正这个问题?关于“构造函数(公共图表类型:any){}”呢?或者任何特定类型而不是ctor参数的任何类型?@TSV:当我试图回答初学者的问题时,我不会使用这些高级功能,例如…(public chartType…
)。在我看来,这只会引起更多的混乱。不了解OP的代码,这只是猜测而已。。
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;
}
}