当前位置: 首页 > wzjs >正文

移动网站开发课程设计上海的外贸网站建设公司

移动网站开发课程设计,上海的外贸网站建设公司,关于建设网站安全性合同,临沧网站建设公司基础知识 1. 基本类型 类型描述string字符串(如 "hello")number数字(整数或浮点数,支持二进制、八进制、十六进制)boolean布尔值(true/false)null空值(需显式声明&#x…

基础知识


1. 基本类型
类型描述
string字符串(如 "hello"
number数字(整数或浮点数,支持二进制、八进制、十六进制)
boolean布尔值(true/false
null空值(需显式声明)
undefined未定义值(需显式声明,严格模式下不可隐式赋值)
symbol唯一且不可变的值(通过Symbol()创建)
object狭义对象(如对象、数组、函数,不包括原始类型)
any关闭类型检查(谨慎使用!)
void表示无返回值的函数
never永不返回的函数(如抛出错误或无限循环)

2. 接口与类型别名
  • 接口(Interface)

    interface User {name: string;age: number;isAdmin?: boolean; // 可选属性
    }
    
  • 类型别名(Type Aliases)

    type UserID = string | number; // 联合类型
    type Point = [number, number]; // 元组类型
    

3. 函数类型
// 参数与返回值类型
function add(a: number, b: number): number {return a + b;
}// 可选参数与默认值
function greet(name: string, greeting: string = "Hello"): string {return `${greeting}, ${name}`;
}// 剩余参数
function sum(...nums: number[]): number {return nums.reduce((a, b) => a + b, 0);
}

4. 泛型
// 泛型函数
function identity<T>(arg: T): T {return arg;
}// 泛型类
class GenericBox<T> {private value: T;constructor(value: T) { this.value = value; }getValue(): T { return this.value; }
}

5. 联合类型与类型守卫
// 联合类型
let value: string | number = "TypeScript";
value = 42;// 类型守卫
function logValue(value: string | number) {if (typeof value === "string") {console.log(value.toUpperCase());} else {console.log(value.toFixed(2));}
}

6. Vue 中的 TypeScript 使用

6.1 安装与配置
  • Vue CLI 项目

    vue create my-project --default
    # 选择 TypeScript 支持
    
  • Vite 项目

    npm create @vitejs/app my-project -- --template vue-ts
    
  • 手动配置

    • 安装依赖:

      npm install vue @vue/runtime-core @vue/compiler-sfc
      npm install typescript @types/node --save-dev
      
    • 创建 tsconfig.json

      {"compilerOptions": {"target": "ESNext","module": "ESNext","strict": true,"moduleResolution": "node","esModuleInterop": true,"skipLibCheck": true,"sourceMap": true},"include": ["src/**/*.ts", "src/**/*.vue"]
      }
      

6.2 Vue 组件的 TypeScript 写法
  • Options API

    <script lang="ts">
    import { defineComponent } from 'vue';interface User {name: string;age: number;
    }export default defineComponent({data() {return {user: {} as User, // 强制类型};},methods: {greet(): void {console.log(`Hello ${this.user.name}`);}}
    });
    </script>
    
  • Composition API

    <script setup lang="ts">
    import { ref } from 'vue';interface User {name: string;age: number;
    }const user = ref<User>({name: "Alice",age: 25
    });const greet = (): void => {console.log(`Hello ${user.value.name}`);
    };
    </script>
    

6.3 Props 类型定义
<script setup lang="ts">
import type { PropType } from 'vue';interface User {id: number;name: string;
}defineProps({user: {type: Object as PropType<User>,required: true},count: {type: Number as PropType<number>,default: 0}
});
</script>

6.4 响应式数据与类型推断
<script setup lang="ts">
import { ref, reactive } from 'vue';// ref
const count = ref<number>(0); // 显式类型
const message = ref("Hello"); // 推断为 string// reactive
const state = reactive({user: {name: "Alice",age: 25}
});
</script>

6.5 Vue 的类型定义文件

Vue 提供了类型定义文件(如 @vue/runtime-core),可直接使用内置类型:

import { Ref, ComputedRef } from 'vue';const count: Ref<number> = ref(0);
const double: ComputedRef<number> = computed(() => count.value * 2);

7. 常见问题与最佳实践
  1. 如何处理 nullundefined

    // 开启 strictNullChecks
    function safeLog(value: string | null) {if (value !== null) {console.log(value.length); // 确定非 null}
    }
    
  2. 避免过度使用 any

    let data: unknown = "TypeScript";
    if (typeof data === "string") {console.log(data.toUpperCase());
    }
    
  3. Vue 中的类型断言

    <script setup lang="ts">
    const element = document.getElementById("app") as HTMLDivElement;
    element.style.color = "red";
    </script>
    


文章转载自:

http://bEKoiHNB.mtrrf.cn
http://E3DpHnzR.mtrrf.cn
http://lO0dOBXf.mtrrf.cn
http://Noj3he1y.mtrrf.cn
http://2Ji9bzhC.mtrrf.cn
http://Axnm5kMG.mtrrf.cn
http://N89nCWaY.mtrrf.cn
http://XnKosIjR.mtrrf.cn
http://eM5L72Ko.mtrrf.cn
http://X48hBYVF.mtrrf.cn
http://pFeCwcVe.mtrrf.cn
http://j8DqNUQG.mtrrf.cn
http://cksHsz14.mtrrf.cn
http://n5Bv7FrU.mtrrf.cn
http://m4BCc7Bt.mtrrf.cn
http://YklQhJZW.mtrrf.cn
http://LL3L1Ztp.mtrrf.cn
http://XOhEeCVc.mtrrf.cn
http://3nhF2yG9.mtrrf.cn
http://UP7ZYJ9J.mtrrf.cn
http://Mc4Va8Ki.mtrrf.cn
http://RPtatqwu.mtrrf.cn
http://5JCCrCdV.mtrrf.cn
http://cx4B6kdg.mtrrf.cn
http://zDmgD4MP.mtrrf.cn
http://5eAUArOV.mtrrf.cn
http://8EB2y7rh.mtrrf.cn
http://VeHPrFMH.mtrrf.cn
http://v7WT46Y8.mtrrf.cn
http://YnL0UWq2.mtrrf.cn
http://www.dtcms.com/wzjs/766851.html

相关文章:

  • 网站建设不包括以下哪个阶段百度快速收录网站
  • 广州建设手机网站wordpress 积分下载
  • 苏州网站关键词优化推广建设有一个网站需要什么
  • 阜城网站建设代理网站开发准备
  • 商务网站如何推广茂名企业网站建设开发
  • 阿里云搭建自己的网站公司网站不续费能打开网页吗
  • 协会网站建设目的百度站长工具网站认证
  • 杭州网站开发wordpress删除评论框
  • 织梦网站 联系方式修改免费店铺logo设计生成器
  • 无法登陆建设银行网站百度智能云wordpress
  • 影视网站cpa 如何做视频社区app源码
  • 上海网站开发与网上接单
  • 微信网站开发费用高水平的网站建设
  • 网站服务器费用关键字搜索
  • 免费招聘网站都有哪些seo如何挖掘关键词
  • asp.net网站建设项目实战资料公司简介网站怎么做
  • 安徽城乡建设 厅网站谷歌官网网址
  • 十堰营销型网站建设几级分销是合法的
  • 北戴河网站建设免费咨询会计问题
  • 网站内容设计上的特色seo搜索优化试卷
  • 电影网站建设规划书wordpress nodejs版本
  • 网站后台发布新闻公司查询系统官网
  • 开发区网站建设工作职责阜阳专业网站建设
  • 女鞋网站建设策划方案加盟创业
  • html网站建设流程新能源汽车价格补贴
  • 网站推广方法技巧做旅游网站需要注意什么
  • php创建网页优化大师app下载
  • 成都网站搜索排名优化公司wordpress下载弹窗插件
  • 网站优化方案教程家乡网站建设策划书模板
  • 网站框架一般用什么做重庆观音桥有什么好玩的