社区首页 >问答首页 >从IgniteUI 1.0升级到1.8后缺少TypeScript中的属性

从IgniteUI 1.0升级到1.8后缺少TypeScript中的属性
EN

Stack Overflow用户
提问于 2016-08-21 10:01:17
回答 1查看 132关注 0票数 1

我们正在将TypeScript项目从1.0版升级到TypeScript 1.8版。我们现在还使用最新的IgniteUI定义文件(v16.1),该文件(在类型记录版本更改之后)无法处理现有的对象初始化(请参阅本文底部的错误)。

这是使用TypeScript igTextEditor的现有IgniteUI代码:

代码语言:javascript
代码运行次数:0
复制
            $(this.textinput).igTextEditor({
                maxLength: this.maxChars,
                textMode: sTextMode,
                listItems: [""],
                buttonType: "dropdown",
                dropDownListOpening: function (evt, ui) {
                    formBase.setActiveForm(self.formID);
                    self.buttonClicked();
                    return false;
                },

                // Validator Options
                validatorOptions: {
                    onblur: true,
                    onchange: false,
                    required: this.required,
                    notificationOptions: {
                        direction: "right",
                        showIcon: "true",
                        mode: "popover"
                    },
                    custom: function (value, fieldOptions) {
                        if (self.showError) {
                          self.showError = false;
                            if (self.errorMessage.length > 0) {
                                $(this.element).igValidator("option", "errorMessage", self.errorMessage);
                            }
                            return false;
                        }

                        self.validate(value);
                        return true;
                    }

                },
                keyup: function (evt, ui) { if (evt.keyCode == 13) { $(evt.currentTarget).blur() } },
                focus: function () { formBase.setActiveForm(self.formID) }
            });

下面是来自igniteui.d.ts的相关接口定义:

代码语言:javascript
代码运行次数:0
复制
interface IgTextEditor {
    textMode?: string;
    maxLength?: number;
    includeKeys?: string;
    excludeKeys?: string;
    toUpper?: boolean;
    toLower?: boolean;
    listMatchIgnoreCase?: boolean;
    listMatchOnly?: boolean;
    listMatchContains?: boolean;
    listAutoComplete?: boolean;
}

interface JQuery {
    igTextEditor(options: IgTextEditor): JQuery;
    igTextEditor(optionLiteral: string, options: IgTextEditor): JQuery;
    igTextEditor(optionLiteral: string, optionName: string, optionValue: any): JQuery;
    igTextEditor(optionLiteral: string, optionName: string): any;
    igTextEditor(methodName: string): any;
}

此代码中来自igniteui.d.ts的唯一更改来自:

igTextEditor(optionLiteral: string, optionName: any, optionValue: any): JQuery;到:

代码语言:javascript
代码运行次数:0
复制
igTextEditor(optionLiteral: string, optionName: string, optionValue: any): JQuery;

在升级到TypeScript 1.8之后,我们将得到以下错误:

error TS2345:Build:类型为'{ x: number:未定义;maxLength: number;textMode: string;listItems: string[];buttonType: s.‘的参数不能分配给“string”类型的参数。

stricter :考虑到类型验证在1.8中TypeScript要严格得多,而将类型转换为< any >并不是一种选择,那么社区建议什么是处理这种情况的最佳方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 03:28:14

在类型记录1.6中添加了“严格的对象文字赋值检查”。这意味着您不能传递作为参数对象的不符合接口!

因此,如果参数对象接口声明字段{field1,field2},则只能传递{field1、field2},而不能传递{field1}或{field1、field2、field3}。

示例:

var obj:{id: number };obj ={ id: 1,name:"my object"} --因为obj声明中没有定义'name‘。

要传递其他字段,需要使用索引器

var obj:{ id: number,x:string any };您可以传递任何附加字段

只需记住严格的类型,并检查所有对象是否100%符合接口(可能来自过时的IgniteUI)

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

https://stackoverflow.com/questions/39067262

复制
相关文章
会话cookie中缺少secure属性
Session cookies (或者包含JSSESSIONID的cookie)是指用来管理web应用的session会话的cookies.这些cookie中保存特定使用者的session ID标识,而且相同的session ID以及session生命周期内相关的数据也在服务器端保存。在web应用中最常用的session管理方式是通过每次请求的时候将cookies传送到服务器端来进行session识别。
季鸟猴
2022/11/14
3.8K0
TypeScript中的可选属性和只读属性
可选属性 接口里的属性不全都是必需的。 有些是只在某些条件下存在,或者根本不存在。 例如给函数传入的参数对象中只有部分属性赋值了。带有可选属性的接口与普通的接口定义差不多,只是在可选属性名字定义的后面
孙亖
2018/06/07
2.9K0
JDK 从老版本升级到 1.8的问题总结
点击 File > Settings > Build Tools > Maven > Importing
Java宝典
2021/01/14
3.5K0
JDK 从老版本升级到 1.8的问题总结
Django从1.8升级到1.11趟坑记录
https://stackoverflow.com/questions/34348360/cannot-resolve-django-utils-log-nullhandler-in-django-1-9
高木工
2019/05/06
3.2K0
TypeScript属性的封装
在 TypeScript 中,属性的封装是一种将属性访问限制在类的内部或通过公共方法进行访问的技术。通过封装属性,可以隐藏属性的具体实现细节,提供对属性的安全访问和控制。
堕落飞鸟
2023/05/22
4020
Django从1.8升级到2.0注意事项 转
由于Django的产品周期问题,我们决定将Django从当前开发的1.8版本升级到2.0版本,此新最版本已不再支持python2,所以开发语言也需要相应升级到3.6版本。其间几个重要的变更技术点节录如下(以更改过程为主,不区别django还是python变更,且django中的变化也不一样是2.0中才开始具有的):
晓歌
2018/08/15
9280
Django从1.8升级到2.0注意事项
                                                                            转
安全修复之Web——会话Cookie中缺少HttpOnly属性
日常我们开发时,会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。 同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
cn華少
2022/05/13
2.3K0
如何在 TypeScript 中为对象动态添加属性?
在 TypeScript 中,我们经常需要在运行时动态添加属性到对象上。这是因为 TypeScript 是一种静态类型语言,类型系统在编译时会检查代码的类型安全性,所以在编译时我们无法确定对象上将要添加哪些属性。在本文中,我们将讨论如何在 TypeScript 中为对象动态添加属性,以及这样做的一些注意事项。
网络技术联盟站
2023/06/07
11.6K0
使用TypeScript并升级到React 18
为了支持React 18,React类型定义进行了升级,其中包含了一些break change。本文将讲述在TypeScript中如何升级到React 18
ACK
2022/05/06
9490
使用TypeScript并升级到React 18
TypeScript-属性装饰器
TypeScript中的属性装饰器是一项有力的特性,允许开发者在类的属性上应用装饰器函数,以自定义属性的行为和元数据。这为开发者提供了更多的控制权和灵活性,以满足各种需求。
杨不易呀
2023/09/29
2520
TypeScript-属性装饰器
TypeScript-属性装饰器
TypeScript中的属性装饰器是一项有力的特性,允许开发者在类的属性上应用装饰器函数,以自定义属性的行为和元数据。这为开发者提供了更多的控制权和灵活性,以满足各种需求。
杨不易呀
2023/09/29
2900
TypeScript-属性装饰器
TS 从 0 到 1 - TypeScript 中的各种符号
! 后缀表达式可以用于断言操作对象是非 null 和非 undefined 类型。即 x!,将从 x 值域中排除 null 和 undefined。
Cellinlab
2023/05/17
1.6K0
MySQL官方源从8.0.3直接yum升级到8.0.4后无法启动
2018-02-23T02:10:08.371209Z 0 [System] [MY-010116] /usr/sbin/mysqld (mysqld 8.0.4-rc-log) starting as process 27702 ... 2018-02-23T02:10:08.737713Z 1 [ERROR] [MY-011096] No data dictionary version number found. 2018-02-23T02:10:08.737989Z 0 [ERROR] [MY-010020] Data Dictionary initialization failed. 2018-02-23T02:10:08.738038Z 0 [ERROR] [MY-010119] Aborting
星哥玩云
2022/08/16
6350
MVC中的引用缺少问题
有的时候引用就会少了上面者2个部分,然后后面你执行什么内容都会出错,这时候就要把这2个引用引进来,首先右键点击添加引用然后到下一个页面点击浏览,然后就找到你这个文件所在的地方
PHY_68
2020/09/16
1.1K0
MVC中的引用缺少问题
解析Kubernetes 1.8中的
Author: xidianwangtao@gmail.com Kubernetes 1.8中对scheduler的更新 【Alpha】支持定义PriorityClass,并指定给Pod来定义Pod Priority; 【Alpha】支持基于Pod Priority的抢占式调度; 【Alpha】Node Controller支持自动根据Node Condition给Node打上对应的Taints; 什么是抢占式调度? 在Kubernetes 1.8版本之前,当集群资源不足时,用户提交新的Pod创建
Walton
2018/04/16
8560
PyTorch 1.0 中文文档:Tensor(张量)的属性
每个 torch.Tensor 对象都有以下几个属性: torch.dtype, torch.device, 和 torch.layout。
ApacheCN_飞龙
2022/05/07
3590
如何从JavaScript对象中删除属性?
在使用 JavaScript 中的对象时,你可能会遇到需要从对象中完全删除属性的情况。为实现这一点可以有好几个选择:
疯狂的技术宅
2021/04/01
12.3K0
typescript属性装饰器不生效的问题
这里会发现,setter相关的代码没有被执行,这是因为使用属性装饰器来修改属性的行为(例如拦截属性的访问或修改),则需要返回一个属性描述符。属性描述符包含有关属性的配置信息,例如属性是否可写(writable)、是否可枚举(enumerable)以及属性的get和set函数等
easonxie
2023/07/25
8540
点击加载更多

相似问题

升级到cocoapods 1.0后缺少必需的体系结构

10

升级到1.8后的DjangoUnicodeDecodeError

23

TypeScript中缺少的属性

12

安装在Visual 2013中的TypeScript 1.8缺少tsc.exe

15

Typescript 1.8 lib.d.ts是否在IDBObjectStore接口上缺少autoIncrement属性?

010
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文