首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

要改掉的 10 种 TypeScript 坏习惯

另外,如果你的函数太长而无法在开始时定义默认值,那么将它们拆分可能是个好主意。 3. 使用 any 类型 具体是什么意思 当你不确定结构时,将 any 用于数据。...为什么应该纠正它 泛型类型变量是变量,就像其他变量一样。当 IDE 开始向我们展示变量的技术性时,我们已经放弃了以它们的名称描述变量技术性的想法。...另外,一个字母的变量名通常不容易看懂,因为不看声明就很难理解它们的含义。 8. 非布尔布尔检查 具体是什么意思 将一个值直接传递给 if 语句来检查是否定义了这个值。...就像是 JavaScript 世界的入门仪式。它看起来简短而简洁,如果你已经习惯了用它,那么你就会知道它的含义。这是将任何值转换为布尔值的捷径。...尤其是在代码库中,当虚假值(例如 null、undefined 和'')之间没有明确的语义分隔时。 为什么应该纠正它 像许多快捷方式和入门仪式一样,使用!! 会混淆代码的真实含义。

51620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    10个写TypeScript代码的坏习惯

    可选属性 这种习惯看起来是什么样的 将属性标记为可选属性,即便这些属性有时不存在。...同样,一个字母的变量名通常会令人费解,因为不看声明就很难理解它们的含义。 8. 对非布尔类型的值进行布尔检查 这种习惯看起来是什么样的 通过直接将值传给 if 语句来检查是否定义了值。...就像是进入 JavaScript 世界的入门仪式。它看起来简短而简洁,如果你对它已经非常习惯了,就会知道它的含义。这是将任意值转换为布尔值的便捷方式。...尤其是在如果虚值之间没有明确的语义界限时,例如 null、undefined 和 ''。 为什么不该这样做 与很多编码时的便捷方式一样,使用 !! 实际上是混淆了代码的真实含义。...在对“非布尔类型的值”进行布尔检查时 countOfNewMessages 为 0 的问题在使用 !! 时仍然会存在。 10. != null 这种习惯看起来是什么样的 棒棒运算符的小弟 !

    68520

    2016.06 第一周 群问题分享

    为什么要在img标签上设置图片的宽高 2016.05.30~2016.06.03 核心概念 浏览器运行机制 参考答案 当浏览器加载页面的HTML代码时,有时候需要在图片下载完成前就对页面进行布局。...而null表示的是有定义,定义的是一个空对象。 if语句中的状态 将undefined和null均作为if语句的条件时,我们会发现,两者均被转换成了布尔值false。...关于上面提到的自动数据类型转换,写个实际的例子来解释一下,下面这个例子当中,原本num是一个数字,但是当数字和字符串运算时,“+”就从原来的加号含义就变成了连字符含义,组成了一个字符串。...null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。...1 变量被声明了,但没有赋值,默认为undefined 2 调用函数时,应该提供的参数没有提供,该参数默认为undefined 3 对象没有赋值的属性,该属性的值默认为undefined 4 函数没有返回值时

    86570

    JS魔法堂:属性、特性,傻傻分不清楚

    但不幸的是,浏览器并不这样理解,即使符合W3C标准规范也不是这样。 三、W3C规定Property和Attribute含义                      看看图更健康 ?  ...区别1,获取的属性值不同:   点方式访问时是对属性值进行计算后的结果,getAttribute方式访问的是静态属性值。  ...空字符串 空字符串     注意:IE8—11下,当通过setAttribute设置异常的样式规则时,html标签中的style属性会被删除,因此无法通过outerHTML来萃取异常样式规则的字符串值...布尔属性(如checked、disabled、selected等)     在折腾时发现同样是布尔属性,但特征却不尽相同,因此暂时给出如下分类。     3.1....变异布尔属性(如IE9+、Chrome和FF下checked)       变异布尔属性最大的特点是,在用户UI改动属性值和通过点方式改动属性值前,点方式和getAttribute方式是操作同一个属性。

    1.8K70

    PSR-13 超媒体链接

    这反过来又允许系统将超媒体链接的响应序列化为一种或多种有线格式,而不依赖于决定这些链接应该是什么的过程。...如果在一个特定的上下文中,指定的一个属性不允许有多个值,序列化 必须 使用第一个提供的值而忽略所有后续的值。 如果一个属性的值为布尔值 true,则序列化 可以 使用序列化格式支持的和合适的缩写形式。...例如:当属性的存在有布尔意义时,HTML 允许属性没有值。当且仅当该属性为布尔值 true 时,这个规则才适用,而不适用于 PHP 中的其他任何 truthy 值,例如整数 1。...如果一个属性的值为布尔值 false,序列化 应该 完全省略属性,除非这样做会改变结果的语义含义。...当且仅当该属性为布尔值 false 时,这个规则才适用,而不适用于 PHP 中的其他任何 falsey 值,例如整数 0。

    18720

    JavaScript运算符列表

    符号 含义 详情 delete 用于删除对象属性,成功返回true,失败返回false 查看 void 可以把语句变成表达式 查看 typeof 返回操作数的类型字符串 查看 + 自增 查看...符号 含义 详解 in 判断对象是否含有某个属性(包括原型链中的属性),存在就返回true。 查看 instanceof 判断对象及其原型链上是否存在某个类型,存在就返回true。...== 检查其两个操作数是否不相等(包括类型),返回布尔结果 查看 3、位移运算符 在二进制的基础上对数字进行移动操作。...当左侧操作数为 null 或者 undefined 时,返回右侧操作数,否则返回左侧操作数 查看 ?: 根据条件选择结果 查看 ?....确保访问深层属性不会有异常 查看 6、赋值运算符 符号 含义 详解 = 用于变量赋值 查看 *= 乘法赋值 查看 **= 求幂赋值 查看 /= 除法赋值 查看 %= 取模赋值 查看 += 1、加法赋值

    57730

    【IFE】Day 2 – 百度前端技术学院 基础学院 学习笔记(二)

    ,HTML5是什么 A : HTML是超文本标记语言 HyperText Mark-up Language,HTML5是超文本标记语言(HTML)的第五次重大修改,在2014年推出,拥有更丰富的语义、...Q : HTML元素标签、属性都是什么概念? A : 1. HTML元素就是构成HTML文件的基本对象,HTML元素可以说是一个统称而已。HTML元素就是通过使用HTML标签进行定义的。 2....为HTML元素提供各种附加信息的就是HTML属性,它总是以”属性名=属性值”这种名值对的形式出现,而且属性总是在HTML元素的开始标签中进行定义. Q : 文档类型是什么概念,起什么作用?...A : HTML的每个标签都有其特定含义(语义),Web语义化是指使用语义恰当的标签,使页面有良好的结构,页面元素有含义,能够让人和搜索引擎都容易理解 Q : 链接是什么概念,对应什么标签?...input type=”text/password” name=”名称” value=”文本” / 当type=”text”时,输入框为文本输入框;当type=”password”时, 输入框为密码输入框

    4.4K40

    HTML5的Video标签详细说明手册

    Video标签内除了可以包含标签外,还可以包含当指定的视频都不能播放时,返回的内容。 2.1 src属性和poster属性 你能想象src属性是用来干啥的。...跟标签的一样,这个属性用于指定视频的地址。 而poster属性用于指定一张图片,在当前视频数据无效时显示(预览图)。视频数据无效可能是视频正在加载,可能是视频地址错误等等。 ?...2.3 autoplay属性 又是一个看名字知道用处的属性。Autoplay属性用于设置视频是否自动播放,是一个布尔属性。当出现时,表示自动播放,去掉是表示不自动播放。...注意,HTML中布尔属性的值不是true和false。...另一种是直接赋值的方式:on时间名=处理函数,这是我们相对用的较多的方法,也就是“当XXX事件触发时”。例如,要进行和上面相同的处理,可以这样media.οnplay= begin_playing。

    2K20

    【HarmonyOS之旅】HarmonyOS开发基础知识(一)

    属性名称 含义 数据类型 是否可缺省 bundleName 表示应用的包名,用于标识应用的唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。...配置为“true”时,表示在多用户下只有一份存储数据。需要注意的是,该属性会使visible属性失效。该标签仅适用于默认设备、平板、智慧屏、车机、智能穿戴。...布尔值 可缺省,缺省值为“false” forms 表示服务卡片的属性。该标签仅当formsEnabled为“true”时,才能生效。参考表27。...当配置为true时,designWidth将会被忽略,设计基准宽度由设备宽度与屏幕密度计算得出。...布尔值 不可缺省 scheduledUpdateTime 表示卡片的定点刷新的时刻,采用24小时制,精确到分钟。

    12910

    web前端常见面试题

    DOCTYPE html> HTML 4.01 Strict(HTML 4.01 严格模式)的 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(如font),它的文档类型声明:...语义化 HTML5 中的语义化就是让元素、属性或属性值有含义,更准确地标记特定类型的内容。...因此上面代码在点击子元素时会先执行子元素绑定的事件,然后向上冒泡,触发父元素绑定的事件。 addEventListener 函数的第三个参数是个布尔值。...含义: 当布尔值是 false 时(这也是默认值),表示向上冒泡触发事件; 当布尔值是 true 时,表示向下捕获触发事件; 不能冒泡的事件 有些事件是不会冒泡的。...target 与 currentTarget target 属性指向的是事件目标,而 currentTarget 属性指向的是正在处理当前事件的对象,它总是指向事件绑定的元素。

    2.3K20

    Django源码学习-15-SimpleTemplateResponse

    与基本HttpResponse对象不同 ,TemplateResponse对象保留视图提供的模板和上下文的详细信息以计算响应。在响应过程中稍后需要时,不会计算响应的最终输出。...['index.html, 'path/to/header.html'] ? SimpleTemplateResponse.context_data 呈现模板时要使用的上下文数据。...它必须是一个 dict。 {'number': 123} SimpleTemplateResponse.rendered_content 使用当前模板和上下文数据的响应当前呈现值内容。...SimpleTemplateResponse.is_rendered 一个布尔值,指示是否已呈现响应内容。 方法 参数的含义与 HttpResponse 相同。...add_post_render_callback() 检查is_rendered,调用rendered_content属性,启动渲染,将实例的content属性设置为rendered_content的内容

    75040

    低代码平台的属性面板该如何设计?

    对于单独的组件来说,属性面板应该是语义化的,无论是开发还是非开发同学,通过属性面板的操作区,就可以直观的知道一个组件的属性是什么,应该如何使用和编辑。 那么属性面板应该包含哪些内容呢?...对于一些特殊属性,可能第一下通过label并不能直观的识别属性的含义,添加描述信息可以进行详细的阐述。 3、content:属性渲染器。用户可以基于此实现对属性的修改。...其实这种我觉得完全可以看开发者和使用者的综合意愿,没有绝对的对错之分。 对应上面组件的props信息,我们可以对这些属性做一些归类,那归类的标准又是什么呢?...: 像高度、宽度这种数字类型的,传入表单时应保证是number(24)类型,属性更改后,事件参数应该是string(24px)类型的 字体加粗与否、倾斜与否、加下划线与否,传入表单时应保证是boolean...这个时候我们在对应的组件当中发射出一个事件(change),当 change 发生的时候,我们能够知道是哪个元素的哪个属性,以及新的值是什么,我们就用这些信息更新这个值,这样 store完成更新,元素的

    1.2K50

    前端入门8-JavaScript语法之数据类型和变量声明正文-数据类型、变量

    意思就是说,null 是 JavaScript 设计出来的一个表示空值含义的数据类型,用来给你在程序中当有需要给某个变量手动设置为空值的场景时使用。...这也是为什么用 typeof 运算符获取 null 的数据类型时,会发现输出的是 Object。因为 null 实际上是个实际存在的数据值,只是它的含义是空值的意思,用于赋值给对象类型的变量。...总结一下 null 和 undefined: null 是用于在程序中,如果有场景需要,如某个变量在某种条件下需要有一个表示为空值含义的取值,此时,可手动为该变量赋值为 null; 当声明某个变量,却没有对其进行赋值初始化操作时...隐式转换 因为属性是对象才有的特性,所以当对某个原始类型的变量进行属性操作时,此时会临时创建一个包装对象,属性操作结束后销毁包装对象。...所以这一行又对s原始类型变量进行属性操作,又再一次创建一个临时的包装对象 需要注意一点,当对原始类型的操作进行属性操作时,会创建一个临时的包装对象,注意是临时的,属性操作完毕,包装对象就销毁了。

    1.5K30

    前端无法让我冷静

    标签创建的是被引用图像的占位空间。 HTML 与 XHTML 之间的差异 在 HTML 中, 标签没有结束标签。 在 XHTML 中, 标签必须被正确地关闭。...对象来请求数据的 fetch window的一个方法 主要特点是 1、第一个参数是URL 2、第二个参数可选参数 可以控制不同的init对象 3、使用了js 中的promise对象 data-xxx 属性的作用是什么...XSS是什么说一下? XSS 指的是:黑客通过 “HTML 注入 ” 篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击 。 CSRF了解吗?...2.原型链的形成是真正是靠proto 而非prototype 函数里的this什么含义,this的指向问题 1.当函数没有用作构造函数时,this指向window 2.用作构造函数时,this指向新生成的对象...v-html、v-show、v-if、v-for等等 v-if 和 v-show 有什么区别? Vue中如何监控某个属性值的变化?

    2.5K40

    【HarmonyOS之旅】HarmonyOS开发基础知识(二)

    属性名称 子属性名称 含义 数据类型 是否可缺省 bundleName —— 表示应用的包名,用于标识应用的唯一性。 包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。...属性名称 含义 数据类型 是否可缺省 jointUserld 表示应用的共享userid。 通常情况下,不同的应用运行在不同的进程中,应用的资源是无法共享。...配置为“true”时,表示在多用户下只有一份存储数据。需要注意的是,该属性会使visible属性失效。 该标签仅适用于手机、平板、智慧屏、车机、智能穿戴。...布尔值 可缺省,缺省值为“false” forms 表示服务卡片的属性。该标签仅当formsEnabled为“true”时,才能生效。...布尔值可缺省,缺省值为“false”forms表示服务卡片的属性。该标签仅当formsEnabled为“true”时,才能生效。

    14910

    HTML5新增全局属性

    1、contentEditable属性 主要功能是允许用户在线编辑元素中的内容,它是一个布尔值属性,可以被设定为true或者false。...该属性还有一个隐藏的inherit(继承)状态,如果属性值为true时表示为可编辑状态,如果属性值为false时表示为不可编辑状态,如果是未设定属性值,则由inherit状态来决定,如果元素的父元素是可编辑的...属性值有on和off,当该属性值为on时页面可编辑。属性值为off表示页面不可编辑。...3、hidden属性 在HTML5中所有的元素都允许使用一个hidden属性,该属性是布尔值属性,可以被设定为true或者false。 当设为true时,元素处于不可见状态。...4、spellcheck属性 该属性是HTML5对于input元素与textarea元素提供的一个新属性,它的功能是针对用户输入的内容进行拼写检查和语法检查,spellcheck属性是一个布尔值属性,具有

    90820

    前端

    标签创建的是被引用图像的占位空间。 HTML 与 XHTML 之间的差异 在 HTML 中, 标签没有结束标签。 在 XHTML 中, 标签必须被正确地关闭。...对象 data-xxx 属性的作用是什么?...这里写图片描述 XSS是什么说一下? XSS 指的是:黑客通过 “HTML 注入 ” 篡改网页,插入恶意脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击 。 CSRF了解吗?...2.原型链的形成是真正是靠proto 而非prototype 函数里的this什么含义,this的指向问题 1.当函数没有用作构造函数时,this指向window 2.用作构造函数时,this指向新生成的对象...v-html、v-show、v-if、v-for等等 v-if 和 v-show 有什么区别? ? image.png Vue中如何监控某个属性值的变化?

    2K41
    领券