typescript中的嵌套布尔值
Nested booleans in typescript?
我正在尝试转换在https://github.com/kaimallea/isMobile从JS到TypeScript。
到目前为止,我做得还可以,但已经完成了以下代码块:
this.apple = {
phone: match(apple_phone, ua),
ipod: match(apple_ipod, ua),
tablet: !match(apple_phone, ua) && match(apple_tablet, ua),
device: match(apple_phone, ua) || match(apple_ipod, ua) || match(apple_tablet, ua)
};
我在课堂上使用将"apple"声明为布尔值
class IsMobileService {
public apple: boolean;
问题是,我得到了"无法将类型‘{phone:boolean;ipod:boolean;tablet:boolean;device:bboolean}’转换为类型‘boolean’"作为错误。
我还试着申报
public apple.phone: boolean;
在声明部分,但被告知我在代码中有一个重复的标识符"apple"。
理想情况下,用户应该能够调用IsMobileService.apple或IsMobileServices.apple.phone来获得他们需要的信息。
apple
不是布尔值。其为CCD_ 2。
最简单的事情就是把它当作一个对象来使用,比如:
public apple:Object = {
phone: match(apple_phone, ua),
ipod: match(apple_ipod, ua),
tablet: !match(apple_phone, ua) && match(apple_tablet, ua),
device: match(apple_phone, ua) || match(apple_ipod, ua) || match(apple_tablet, ua)
};
但是,如果你想更严格(要求apple
是一个由特定布尔值组成的对象),那么你可以使用interface
,比如:
export interface Apple {
phone:boolean;
ipod:boolean;
...
}
并将apple
设置为类型Apple
而不是object
,如:
public apple:Apple = {
phone: match(apple_phone, ua),
ipod: match(apple_ipod, ua),
tablet: !match(apple_phone, ua) && match(apple_tablet, ua),
device: match(apple_phone, ua) || match(apple_ipod, ua) || match(apple_tablet, ua)
};
在尝试检查属性时,您可以使用IsMobileService类的实例,访问它的公共apple对象,然后获取要检查的属性。
相关文章:
- 如何打印嵌套对象的所有值
- 如何通过json对象数组为嵌套对象赋值
- Ember.js(2.5.0)如何设置嵌套对象值
- Javascript中带有返回值的嵌套函数
- 返回嵌套JSON中包含特定键的所有值
- 嵌套foreach逐字母读取值,而不是整个单词
- 如何从嵌套的API函数返回值
- JavaScript:在嵌套循环中为数组赋值
- 正在从嵌套值获取父对象
- 在JSP中获取嵌套形式的select列表值
- 从嵌套对象属性中获取排除某个值的最高值
- 从 angularjs 中的嵌套成功函数返回一个值
- 如何在嵌套函数jquery上保持变量的值不变
- MongoDB按嵌套对象值排序
- 在javascript/angular中创建播放列表(按值复制数组,但按引用设置嵌套对象)
- AngularJS - 嵌套的ng-重复选择/选项,获取/设置所选值
- 使用嵌套回调的值作为父函数的返回
- 从 CasperJS 中的嵌套 JavaScript 对象获取值
- typescript中的嵌套布尔值
- 如何在文本框中输入值(嵌套在表单中的HTML表中)并将其传递给Javascript函数