首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TypeScript或JavaScript类型转换

TypeScript或JavaScript类型转换
EN

Stack Overflow用户
提问于 2012-11-03 08:17:05
回答 2查看 338K关注 0票数 242

如何处理TypeScript或Javascript中的类型转换?

假设我有以下TypeScript代码:

代码语言:javascript
复制
module Symbology { 

    export class SymbolFactory { 

        createStyle( symbolInfo : SymbolInfo) : any { 
            if (symbolInfo == null)
            {
                 return null;
            }

            if (symbolInfo.symbolShapeType === "marker") {      

                // how to cast to MarkerSymbolInfo          
                return this.createMarkerStyle((MarkerSymbolInfo) symbolInfo);
            }                                  
        }

        createMarkerStyle(markerSymbol : MarkerSymbolInfo ): any { 
            throw "createMarkerStyle not implemented";
        }              

    }
}

其中SymbolInfo是基类。如何在TypeScript或Javascript中处理从SymbolInfoMarkerSymbolInfo的类型转换?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-03 13:53:07

可以像这样进行强制转换:

代码语言:javascript
复制
return this.createMarkerStyle(<MarkerSymbolInfo> symbolInfo);

或者,如果你想兼容tsx模式,就像这样:

代码语言:javascript
复制
return this.createMarkerStyle(symbolInfo as MarkerSymbolInfo);

请记住,这是编译时强制转换,而不是运行时强制转换。

票数 368
EN

Stack Overflow用户

发布于 2020-07-13 20:18:24

在typescript中,可以在if语句中执行instanceof检查,并且可以使用Typed属性访问相同的变量。

因此,假设MarkerSymbolInfo有一个名为marker的属性。您可以执行以下操作:

代码语言:javascript
复制
if (symbolInfo instanceof MarkerSymbol) {
    // access .marker here
    const marker = symbolInfo.marker
}

这是一个很好的小技巧,可以使用相同的变量获取变量的实例,而不需要将其重新分配给不同的变量名。

有关更多信息,请查看以下两个资源:

TypeScript instanceofJavaScript instanceof

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13204759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档