04 # 第一个 TypeScript 程序

简介: 04 # 第一个 TypeScript 程序

初始化项目以及安装依赖

新建 ts_in_action 文件夾

npm init -y


安装好 typescript,就可以执行下面命令查看帮助信息

npm i typescript -g
tsc -h


创建配置文件,执行下面命令就会生成一个 tsconfig.json 文件

tsc --init


使用 tsc 编译一个 js 文件

新建 src/index.ts

let kaimo:string = "hello typescript"


执行下面命令编译该 ts 文件

tsc ./src/index.ts


编译结果如下:

var kaimo = "hello typescript";


也可以使用 https://www.typescriptlang.org/play 查看

配置构建工具 webpack 环境


安装依赖

npm i webpack@4.35.2 webpack-cli@3.3.5 webpack-dev-server@3.7.2 -D
npm i ts-loader@6.0.4 typescript@3.5.2 -D
npm i html-webpack-plugin@3.2.0 clean-webpack-plugin@3.0.0 webpack-merge@4.2.1 -D


配置相应的环境

基础配置:

// 公共环境配置
// 下面这行用于 vscode 中智能化自动提示 webpack 配置项
/** @type {import('webpack').Configuration} */
const HtmlWebpackPlugin = require("html-webpack-plugin");
const config = {
    entry: "./src/index.ts",
    output: {
        filename: "app.js"
    },
    resolve: {
        extensions: [".js", ".ts", ".tsx"]
    },
    module: {
        rules: [
            {
                test: /\.tsx?$/i,
                use: [
                    {
                        loader: "ts-loader"
                    }
                ],
                exclude: /node_modules/
            }
        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: "./src/tpl/index.html"
        })
    ]
};
module.exports = config;


开发配置:

// 开发环境配置
// 下面这行用于 vscode 中智能化自动提示 webpack 配置项
/** @type {import('webpack').Configuration} */
const config = {
    devtool: "cheap-module-eval-source-map"
};
module.exports = config;


生产配置:

// 生产环境配置
// 下面这行用于 vscode 中智能化自动提示 webpack 配置项
/** @type {import('webpack').Configuration} */
const CleanWebpackPlugin = require("clean-webpack-plugin");
const config = {
    plugins: [new CleanWebpackPlugin()]
};
module.exports = config;


webpack 文件入口配置:

// webpack 文件入口
// 下面这行用于 vscode 中智能化自动提示 webpack 配置项
/** @type {import('webpack').Configuration} */
const merge = require("webpack-merge");
const baseConfig = require("./webpack.base.config");
const devConfig = require("./webpack.dev.config");
const proConfig = require("./webpack.pro.config");
const config = merge(baseConfig, process.NODE_ENV === "development" ? devConfig : proConfig);
module.exports = config;


package.json 脚本配置

"scripts": {
    "start": "webpack-dev-server --mode=development --config ./build/webpack.config.js",
    "build": "webpack --mode=production --config ./build/webpack.config.js"
},


启动服务并且打包测试

添加模板

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>TypeScript in Action</title>
    </head>
    <body>
        <div class="app"></div>
    </body>
</html>


添加功能

let kaimo:string = "hello typescript";
document.querySelectorAll(".app")[0].innerHTML = kaimo;


启动服务 npm run start,访问 http://localhost:8080/


打包 npm run build



目录
相关文章
|
4月前
|
JavaScript 前端开发 Ubuntu
TypeScript笔记(1)——环境配置与第一个ts程序
TypeScript笔记(1)——环境配置与第一个ts程序
29 0
|
4月前
|
数据采集 JavaScript 前端开发
TypeScript 和 jsdom 库创建爬虫程序示例
TypeScript 和 jsdom 库创建爬虫程序示例
|
JavaScript 前端开发 API
TypeScript 创建单页天气查询应用程序
关于 TypeScript 是什么,可以在掘金找到很多文章,如想学习一下TypeScript,GitHub是个不错的平台,在文章《收藏GitHub上的7个热门TypeScript项目》介绍几个不错的开源项目。本文将使用TypeScript创建单页应用程序(SPA)示例,天气查询。
162 0
TypeScript 创建单页天气查询应用程序
|
数据采集 JavaScript 前端开发
|
19天前
|
JavaScript 编译器
TypeScript中类型守卫:缩小类型范围的艺术
【4月更文挑战第23天】TypeScript中的类型守卫是缩小类型范围的关键技术,它帮助我们在运行时确保值的精确类型,提升代码健壮性和可读性。类型守卫包括`typeof`(检查原始类型)、`instanceof`(检查类实例)和自定义类型守卫。通过这些方法,我们可以更好地处理联合类型、泛型和不同数据源,降低运行时错误,提高代码质量。
|
3月前
|
JavaScript 前端开发 安全
Apollo与TypeScript:强大类型检查在前端开发中的应用
Apollo与TypeScript:强大类型检查在前端开发中的应用
|
12天前
|
JavaScript 安全 前端开发
【TypeScript技术专栏】TypeScript中的类型推断与类型守卫
【4月更文挑战第30天】TypeScript的类型推断与类型守卫是提升代码安全的关键。类型推断自动识别变量类型,减少错误,包括基础、上下文、最佳通用和控制流类型推断。类型守卫则通过`typeof`、`instanceof`及自定义函数在运行时确认变量类型,确保类型安全。两者结合使用,优化开发体验,助力构建健壮应用。
|
12天前
|
JavaScript 前端开发 开发者
【TypeScript技术专栏】TypeScript类型系统与接口详解
【4月更文挑战第30天】TypeScript扩展JavaScript,引入静态类型检查以减少错误。其类型系统包括基本类型、数组等,而接口是定义对象结构的机制。接口描述对象外形,不涉及实现,可用于规定对象属性和方法。通过声明、实现接口,以及利用可选、只读属性,接口继承和合并,TypeScript增强了代码的健壮性和维护性。学习和掌握TypeScript的接口对于大型项目开发至关重要。
|
12天前
|
JavaScript 安全 前端开发
【亮剑】TypeScript 由于其强类型的特性,直接为对象动态添加属性可能会遇到一些问题
【4月更文挑战第30天】本文探讨了在 TypeScript 中安全地为对象动态添加属性的方法。基础方法是使用索引签名,允许接受任何属性名但牺牲了部分类型检查。进阶方法是接口扩展,通过声明合并动态添加属性,保持类型安全但可能导致代码重复。高级方法利用 OOP 模式的类继承,确保类型安全但增加代码复杂性。选择哪种方法取决于应用场景、代码复杂性和类型安全性需求。
|
13天前
|
JavaScript 前端开发
TypeScript基础类型
TypeScript基础类型