首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    前端系列15集-watch,watchEffect,eventBus

    换句话说:watchEffect相当于将watch 的依赖源和回调函数合并,当任何你有用到的响应式依赖更新时,该回调函数便会重新执行。...这个函数返回一个 props 对象,其中每个属性都对应着组件中接收的 prop 属性。在这个例子中,这个 props 对象是空的,也就是说这个组件没有接收任何 props 属性。...此对象的目的是为可能未由组件的调用者指定的 props 提供回退值。 ref 是一个函数,它创建对类型为 T 的值的响应式引用。...,类型的声明不能使用d.ts,此为Vue3尚未解决的issur interface ChildProps { foo: string userList: User[], userInfo:...toRef基于响应式对象上的一个属性,创建一个对应的 ref。这样创建的 ref 与其源属性保持同步:改变源属性的值将更新 ref 的值,反之亦然。toRefs亦然。

    49330

    使用Vite重构Vue3项目

    A和B中分别有自己的index.html、main.ts以及package.json文件(配置start、build命令,传入不同的参数来启动/构建不同入口的项目) 根目录的package.json中你就可以配置启动...,因此需要在ts的配置文件中将isolatedModules属性设置为true。...": true } } 使用vite提供的对象 当我想使用vite所提供的glob属性时,发现编辑器报错: TS2339: Property 'glob' does not exist on type..." ] } } 获取全局属性 当我们使用一些第三方库的时候它会在globalProperties挂载一些方法,当在ts+setup环境下使用时,会出现类型无法推导问题,如下所示: 第三方库提供了一个...$connect(); }) 无法识别NodeJS类型 我们在给setinterval和setTimeout指定类型时,会用到NodeJS模块,会出现报错:ESLint: 'NodeJS

    2K10

    鸿蒙高质量代码静态检测200条一

    /ban-ts-comment不允许使用@ts-格式的注释,或要求在注释后进行补充说明@typescript-eslint/ban-tslint-comment不允许使用//tslint...:格式的注释@typescript-eslint/ban-types不允许使用某些类型,例如类型小写保持一致,使用string,boolean,number等等,而不是String...@typescript-eslint/class-literal-property-style建议类中的字面量属性对外暴露时,保持一致的风格@typescript-eslint/comma-dangle...在类属性和方法上需要显式定义访问修饰符@typescript-eslint/func-call-spacing"@typescript-eslint/func-call-spacing": [ "error...不允许对初始化为数字、字符串或布尔值的变量或参数进行显式类型声明@typescript-eslint/no-invalid-this禁止在this的值为undefined的上下文中使用this@typescript-eslint

    5700

    前端规范指南,让团队代码如出一辙!ESLint + Prettier + husky + lint-staged

    '@typescript-eslint/no-explicit-any': ['off'] // 用于配置 TypeScript 中的 "any" 类型的使用规则,这里配置为关闭禁止显式使用 "any"...{js,jsx,ts,tsx} 校验暂存区、指定目录下的文件类型 // 校验命令,执行 eslint 、prettier "src/**/*....{js,jsx,ts,tsx}" 是指定要针对的暂存文件模式,你可以根据自己的项目需求来配置。...{js,jsx,ts,tsx} 校验暂存区、指定目录下的文件类型 // 校验命令,执行 eslint 、prettier "src/**/*....这将打开一个交互式的界面,引导你填写提交消息。 案例如下: 1、提交修改文件 git add . 2、开始交互式提交,填写规范信息 npm run commit 3、选择提交类型 ?

    2.7K30

    深入浅出 Eslint,告别 Lint 恐惧症

    ParserOptions EsLint 支持任何类型的 JavaScript 语言选项(比如 ES6、模块类型等等),默认不进行任何配置时 EsLint 默认检测规则为 ES5 代码, 我们可以通过配置中的...同时,我们在 rules 配置中使用 @typescript-eslint/array-type 来定义数组类型声明时的规则规范。...我们可以看到上边的 index.ts 中针对于 TS 声明数组类型的检查会进行额外的 Eslint 检查。...接下来,我们稍微来聊聊继承中针对于 Rules 的覆盖规则: rules 属性可以做下面的任何事情以扩展(或覆盖)规则: 启用额外的规则 改变继承的规则级别而不改变它的选项: 基础配置:"eqeqeq...如果我们要在配置文件中指定处理器,直接使用 processor 属性就可以。 使用由插件名和处理器名组成的串接字符串加上斜杠。

    2K20

    Typescript真香秘笈

    设置为any类型后,相当于告诉typescript编译器跳过这个变量的检查,因此可以访问、设置这个变量的任何属性,或者给这个变量赋任何值,编译器都不会报错。...javascript里函数根据传入不同的参数而返回不同类型的数据是很常见的。...你可以在属性名前用 readonly来指定只读属性。...这里主要说下typescript的class和javascript的class的不同之处: 只读属性 public、private、protected修饰符 抽象类 实现接口 只读属性 类似于接口中的只读属性...如果项目很庞大,无法一下子全部重构,实际上也不妨碍使用ts。 在tsconfig.json文件中配置allowJs: true就可以兼容js。 对于项目中的js文件,有三种处理方式。 不做任何处理。

    5.7K20

    eslint 从0到1

    基础配置项 env 指定包或项目的运行环境 针对不同的允许环境,存在不同的全局变量, 例如 浏览器中的 window, node 中的 process.env 等。...通过数据设置规则详细属性 } rules 等级值设置方式 'off' | 0 禁用该规则 'warn' | 1 不符合规则时,警告提示 'error' | 2 不符合规则时, 报错提示 rules 属性设置.../node_modules/coding-standard/eslintDefaults.js", // 指定具体规则文件目录 ] plugins 插件 插件一般用来扩展新的校验规则,例如: @typescript-eslint...新增 ts 的语法校验规则 "plugins": [ "@typescript-eslint" ], 进阶配置项 parser 指定解析器 如何解析js代码 { "parser": "...该设置将作用于所有规则 { "settings": { "sharedData": "Hello" } } overrides 针对不同文件的独立配置 某些情况下, 我们需要针对不同类型的文件设置不同的校验规则

    1.7K20

    TypeScript

    #类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。 #什么是断言 有些情况下 TS 并不能正确或者准确得推断类型,这个时候可能产生不必要的警告或者报错。..."; let strLength: number = (someValue as string).length;// 临时把 someValue 断言为一个string 类型的值 #将任何一个类型断言成...any 但有的时候,我们非常确定这段代码不会出错,比如下面这个例子: window.foo = 'foo'; // index.ts:1:8 - error TS2339: Property 'foo...当我们向 window 添加一个 foo 时,会报错示我们 window 上不存在 foo 属性。...这里我有意使用不同的变量名,以表明类型值沿链向上传播,且与变量名无关。 #泛型约束 确保属性存在 当我们在函数中获取length属性,在类型为number时,是没有length的,所以会报错。

    1.8K10

    用TypeScript编写React的最佳实践

    通过同时使用它们,我们实际上是使用 JavaScript 的类型化版本来构建 UI。...TS:“酷!我将对其进行编译,并确保你没有错过任何内容。” React:“听起来对我很好!” 因此,答案是肯定的!....tsx文件中支持JSX "sourceMap": true, // 生成相应的.map文件 "declaration": true, // 生成相应的.d.ts文件 "noUnusedLocals...在第一个例子中,我们使用函数声明式写法,我们注明了这个函数返回值是 React.ReactNode 类型。相反,第二个例子使用了一个函数表达式。...但是你可能想要修改一两个属性。还记得我们如何看待两种类型组件 Props、type 或 interfaces 的方法吗?取决于你使用的组件决定了你如何扩展组件 Props 。

    4.7K51

    以淘宝店铺为例,谈谈 TypeScript ESLint 规则集考量

    规则会要求你为函数与类方法显式的声明其返回值,switch-exhaustiveness-check 规则会要求你处理联合类型变量的所有类型分支。...使用 {} 会让你寸步难行:类型 {} 上不存在属性 'foo',所以用了 {} 你大概率在下面还需要类型断言回去或者变 any,使用 object Function 毫无意义。...explicit-module-boundary-types 函数与类方法的返回值需要被显式的指定,而不是依赖类型推导,如: const foo = (): Foo => {}; 为什么:通过显式指定来直观的区分函数的功能...,如副作用等,同时显式指定的函数返回值也能在一定程度上提升 TypeScript Compiler 性能。...而单继承的空接口场景则是较多的,如先确定下继承关系再在后续添加成员。 no-explicit-any 不允许显式的 any。

    2.7K30

    深入浅出 TypeScript

    never 类型表示的是那些永不存在的值的类型,never类型是任何类型的子类型,也可以赋值给任何类型;然而,没有类型是 never的子类型或可以赋值给 never类型(除了never本身之外)。...表示非原始类型。比如枚举、数组、元组都是 object 类型。 枚举类型 声明枚举类型时,如果没有显式的赋值,那么枚举值从 0 递增。如果显式赋值,那么后面的值从当前值递增。...> o[n]); } 映射类型 「映射类型」的语法是[K in Keys]: K:类型变量,依次绑定到每个属性上,对应每个属性名的类型 Keys:字符串字面量构成的联合类型,表示一组属性名(的类型)...「分布式有条件类型」在实例化时会自动分发成联合类型。 // 裸类型参数,没有被任何其他类型包裹即T type NakedUsage = T extends boolean ?....d.ts生成map文件 */ "sourceMap": true, /* sourceMap的值为true或false,用来指定编译时是否生成.map文件

    2.9K30

    webpack5构建一个通用的组件库

    } }; }; isType.ts检测数据类型 /** * @desption 判断基础数据类型以及引用数据类型,替代typeof * @param {*} val * @returns...判断一个对象的属性是否存在 const has = Reflect.has; const hasOwn = (obj: Recordstring, any>, key: string) => has.call...targets: object) => { const descriptors = Object.getOwnPropertyDescriptors(targets); // todo 针对不同的数据类型做...但是其他两种貌似是ok的 npm 发布组件 我们现在将这包发布到npm上吧 npm run build 生成dist包,并且修改package.json文件的main,指定到dist/umd/index.js...配置文件支持ts 组织webpack5打包不同library.type,支持打包成不同type,umd,cjs,ejs三种类型 编写具体工具类函数 将自己写的工具类发布到npm或者私服上,让工具类变成通用工具代码

    79410

    深度讲解TS:这样学TS,迟早进大厂【11】:类型断言

    TS系列地址: 21篇文章带你玩转ts # 类型断言 类型断言(Type Assertion)可以用来手动指定一个值的类型。...当我们引用一个在此类型上不存在的属性或方法时,就会报错: const foo: number = 1; foo.length = 1; // index.ts:2:5 - error TS2339:...上面的例子中,数字类型的变量 foo 上是没有 length 属性的,故 TypeScript 给出了相应的错误提示。 这种错误提示显然是非常有用的。...上面的例子中,我们需要将 window 上添加一个属性 foo,但 TypeScript 编译时会报错,提示我们 window 上不存在 foo 属性。...此时我们可以使用 as any 临时将 window 断言为 any 类型: (window as any).foo = 1; 在 any 类型的变量上,访问任何属性都是允许的。

    1.3K20
    领券