精华内容
下载资源
问答
  • 本篇文章主要阐述:如何借助gulp打包编译自动生成项目声明文件。现有项目结构rootindex.tsmodulesa.tsb.tsc.ts在build工作流中,我们需要做这样几件事:清理 dist 目录生成 declare 文件清理多余 js 文件转码 ts ...

    声明(declare)文件,是对整个ts项目输出物的描述。

    本篇文章主要阐述:如何借助gulp打包编译并自动生成项目声明文件。

    现有项目结构

    root

    index.ts

    modules

    a.ts

    b.ts

    c.ts

    在build工作流中,我们需要做这样几件事:

    清理 dist 目录

    生成 declare 文件

    清理多余 js 文件

    转码 ts 并打包为单独的 js 包文件,并压缩输出

    下面将按照这个流程一步步实施。

    安装本地依赖

    除了全局 gulp / typescript 之外,本地需要安装以下几个包:

    gulp (1 ~ 4)

    typescript (2, 3, 4)

    gulp-clean (1, 3)

    gulp-typescript (2)

    browserify (4)

    tsify (4)

    gulp-uglify (4)

    vinyl-buffer (4)

    vinyl-source-stream (4)

    npm i -D gulp typescript gulp-clean gulp-typescript browserify tsify gulp-uglify vinyl-buffer vinyl-source-stream

    复制代码

    创建工作流

    0. 声明各个模块

    const gulp = require('gulp')

    const clean = require('gulp-clean');

    const ts = require('gulp-typescript')

    const uglify = require('gulp-uglify')

    const browserify = require('browserify')

    const tsify = require('tsify')

    const buffer = require('vinyl-buffer')

    const source = require('vinyl-source-stream')

    复制代码

    1. 清理 dist 目录

    gulp.task('clean', function (){

    return gulp

    .src('dist', { read: false, allowEmpty: true })

    .pipe(clean('dist'));

    });

    复制代码

    注意 allowEmpty,允许被清除目录不存在。

    2. 生成 declare 文件

    gulp.task('tsc', () => {

    return gulp

    .src(['./*.ts', './!(node_modules)/*.ts'])

    .pipe(ts({

    // 这里对应参数

    // { "declaration": true }

    // /* Generates corresponding '.d.ts' file. */

    declaration: true

    }))

    .pipe(gulp.dest('dist'))

    })

    复制代码

    这里配置 ts({ declaration: true }) 后,会针对每个 ts 文件产生一个 .js 和 .d.ts 文件。

    3. 清理多余 js 文件

    这里针对第二步在 dist 中产生的多余 js 文件进行清理。

    gulp.task('clean-js', function (){

    return gulp

    .src('dist/**/*.js', { read: false })

    .pipe(clean('*.js'));

    });

    复制代码

    这里注意下 gulp.src('dist/**/*.js') 选取目录下所有文件的写法。

    4. 转码 ts 并打包为单独的 js 包文件,并压缩输出

    gulp.task('build', () => {

    return browserify({

    basedir: '.',

    debug: true,

    entries: ['index.ts'],

    cache: {},

    packageCache: {}

    }).plugin(tsify).bundle()

    .pipe(source('index.js'))

    .pipe(buffer())

    .pipe(uglify())

    .pipe(gulp.dest('dist'))

    })

    复制代码

    关于 gulp-uglify 的使用,参考了下面的地址

    顺序执行所有任务

    gulp.task('default'

    , gulp.series(

    gulp.parallel('clean'),

    gulp.parallel('tsc'),

    gulp.parallel('clean-js'),

    gulp.parallel('build')

    )

    )

    复制代码

    在终端执行:

    % gulp

    [18:29:42] Using gulpfile /ts-learn/declare/gulpfile.js

    [18:29:42] Starting 'default'...

    [18:29:42] Starting 'clean'...

    [18:29:42] Finished 'clean' after 14 ms

    [18:29:42] Starting 'tsc'...

    [18:29:43] Finished 'tsc' after 1.1 s

    [18:29:43] Starting 'clean-js'...

    [18:29:43] Finished 'clean-js' after 6.29 ms

    [18:29:43] Starting 'build'...

    [18:29:44] Finished 'build' after 983 ms

    [18:29:44] Finished 'default' after 2.11 s

    复制代码

    编译完成,输出的 dist 目录结构为:

    dist

    index.d.ts

    index.js

    modules

    a.d.ts

    b.d.ts

    c.d.ts

    创建一个 test.js 文件

    const { getA } = require('./dist')

    复制代码

    此时VSCode可以提示并定位方法和属性的位置。

    在NPM包中的应用

    这里 dist 的结构,可以作为NPM包发布的结构,兼顾代码的私密和文档的友好。

    项目的 package.json 可以配置为:

    {

    // ...

    "main": "dist/index.js",

    // ...

    }

    复制代码

    包管理会将模块调用指向发布的 index.js,并自动识别和引用并排的 index.d.ts 文件所谓架构解释文档。

    就酱

    展开全文
  • TS声明文件是必不可少的,它不仅仅让你的工具支持TS,更是负责充当一个说明书的作用,让人对其的使用一目了然。什么是声明语句?什么时候需要他?假如我们想使用第三方库 jQuery,一种常见的方式是在 html 中通过...

    打算为你的团队写一个封装好的工具?TS的声明文件是必不可少的,它不仅仅让你的工具支持TS,更是负责充当一个说明书的作用,让人对其的使用一目了然。

    什么是声明语句?什么时候需要他?

    假如我们想使用第三方库 jQuery,一种常见的方式是在 html 中通过script 标签引入 jQuery,然后就可以使用全局变量 $ 或 jQuery 了。

    我们通常这样获取一个 id 是 foo 的元素:

    $('#foo');

    // or

    jQuery('#foo');

    // ts并不了解这两个变量从何来,到哪去。我们可以告诉ts的编译器,这个东西大概是什么

    // 其用于编译时的检查,在编译结果中会被删除

    declare var jQuery: (selector: string) => any;

    jQuery('#foo');

    复制代码

    这就是声明语句。如果你是js编写的,往往需要一个声明文件。

    如果你是ts编写的,那么让ts自动生成就好了。

    以下教程根据js的库进行编写声明文件。

    什么是声明文件?

    你可以把声明语句看作是声明文件的“组件”。声明语句组成声明文件。

    通常我们会把声明语句放到一个单独的文件{(jQuery.d.ts)声明文件必需以 .d.ts 为后缀。}中,这就是声明文件

    // src/jQuery.d.ts

    declare var jQuery: (selector: string) => any;

    复制代码

    一般来说,ts 会解析项目中所有的 *.ts 文件, .d.ts 的文件也属于*.ts文件。

    所以当我们将 jQuery.d.ts 放到项目中时,其他所有 *.ts 文件就都可以获得 jQuery 的类型定义了。

    假如仍然无法解析,那么可以检查下 tsconfig.json 。

    这里只演示了全局变量模式的声明文件,通过模块导入的方式的话,那么引入声明文件又是另一种方式了。

    书写声明文件!

    一般来说第三方库都会提供声明文件,我们只需要安装它就好了。

    但有一些库不会提供声明文件,我们就需要自己书写声明文件了。

    前面只介绍了最简单的声明文件内容,而真正书写一个声明文件并不是一件简单的事

    书写声明文件有多种场景需要契合,例如npm导入和script导入的声明文件的写法与使用方法都不一样,我们这也知会讨论比较常用的这两种方式,如果看官有兴趣,可以自行移步教程学习。

    1. 全局变量:通过 script 标签引入第三方库,注入全局变量

    全局变量是最简单的一种场景,之前举的例子就是通过 script 标签引入 jQuery,注入全局变量 $ 和 jQuery。

    使用全局变量的声明文件时,如果是以 npm install @types/xxx --save-dev 安装的,则不需要任何配置。

    如果是将声明文件直接存放于当前项目中,则建议和其他源码一起放到 src 目录下(或者对应的源码目录下):

    /path/to/project

    ├── src

    | ├── index.ts

    | └── jQuery.d.ts

    └── tsconfig.json

    复制代码

    如果没有生效,可以检查下 tsconfig.json 中的 files、include 和 exclude 配置,确保其包含了 jQuery.d.ts 文件。

    全局变量的声明文件主要有以下几种语法:

    1. declare var / let / const声明全局变量

    没什么区别 const定义的无法修改。

    ```

    //使用const的时候是最多的,一般不允许他人修改你的函数

    declare const jQuery: (selector: string) => any;

    ```

    复制代码

    2. declare function 声明全局方法

    ```

    declare function jQuery(selector: string): any;

    ```

    复制代码

    3. declare class 声明全局类

    ```

    declare class Animal {

    name: string;

    constructor(name: string);

    sayHi(): string;

    }

    //其他文件中

    let cat = new Animal('Tom');

    ```

    复制代码

    4. declare enum 声明全局枚举类型

    不讨论,这个需要后面的知识

    复制代码

    5. declare namespace 声明(含有子属性的)全局对象

    declare namespace 还是比较常用的,它用来表示全局变量是一个对象,包含很多子属性。

    举个例子:

    //jQuery 是一个全局变量,它是一个对象

    //jQuery.ajax 方法可以调用

    //那么我们就应该使用 declare namespace jQuery 来声明这个属性的全局变量。

    declare namespace jQuery {

    function ajax(url: string, settings?: any): void;

    }

    //更为复杂一点的例子

    declare namespace jQuery {

    function ajax(url: string, settings?: any): void;

    const version: number;

    class Event {

    blur(eventType: EventType): void

    }

    enum EventType {

    CustomClick

    }

    }

    复制代码

    当然嵌套也是经常看到的事情,我们也可以使用namespace嵌套使用

    declare namespace jQuery {

    function ajax(url: string, settings?: any): void;

    namespace fn {

    function extend(object: any): void;

    }

    }

    复制代码

    6. interface 和 type 声明全局类型

    除了主要的全局变量之外,可能有一些类型我们也希望能暴露出来。

    在类型声明文件中,我们可以直接使用 interface 或 type 来声明一个全局的接口或类型:

    // src/jQuery.d.ts

    interface AjaxSettings {

    method?: 'GET' | 'POST'

    data?: any;

    }

    declare namespace jQuery {

    function ajax(url: string, settings?: AjaxSettings): void;

    }

    复制代码

    2. npm 包:通过 import foo from 'foo' 导入,符合 ES6 模块规范

    在我们给一个 npm 包创建声明文件之前,需要先看看它的声明文件是否已经存在。一般来说,npm 包的声明文件可能存在于两个地方:

    与该 npm 包在一起。package.json中有types字段,或有一个index.d.ts声明文件。这种模式不需要额外安装其他包,是最为推荐的,所以以后我们自己创建 npm 包的时候,最好也将声明文件与 npm 包绑定在一起。

    发布到 @types 里。我们只需要尝试安装一下对应的 @types 包就知道是否存在该声明文件,安装命令是 npm install @types/foo --save-dev。这种模式一般是由于 npm 包的维护者没有提供声明文件,所以只能由其他人将声明文件发布到 @types 里了。

    假如以上两种方式都没有找到对应的声明文件,那么我们就需要自己为它写声明文件了。

    由于是通过 import 语句导入的模块,所以声明文件存放的位置也有所约束,一般有两种方案:

    创建一个 node_modules/@types/foo/index.d.ts 文件,存放 foo 模块的声明文件。这种方式不需要额外的配置,但是 node_modules 目录不稳定,代码也没有被保存到仓库中,无法回溯版本,有不小心被删除的风险,故不太建议用这种方案,一般只用作临时测试。

    创建一个 types 目录,专门用来管理自己写的声明文件,将 foo 的声明文件放到 types/foo/index.d.ts 中。这种方式需要配置下 tsconfig.json 中的 paths 和 baseUrl 字段。

    介绍一下第二种方案

    ├── src

    | └── index.ts

    ├── types

    | └── foo

    | └── index.d.ts

    └── tsconfig.json

    //tsconfig.json

    {

    "compilerOptions": {

    "module": "commonjs",

    "baseUrl": "./",

    "paths": {

    "*": ["types/*"]

    }

    }

    }

    复制代码

    npm 包的声明文件主要有以下几种语法:

    1. export 导出变量

    在 npm 包的声明文件中,使用 declare 不再会声明一个全局变量,而只会在当前文件中声明一个局部变量。

    只有在声明文件中使用 export 导出,然后在使用方 import 导入后,才会应用到这些类型声明。

    export namespace 导出(含有子属性的)对象

    // 某声明文件

    export const name: string;

    export function getName(): string;

    export class Animal {

    constructor(name: string);

    sayHi(): string;

    }

    export enum Directions {

    Up,

    Down,

    Left,

    Right

    }

    export interface Options {

    data: any;

    }

    // 某使用文件

    import { name, getName, Animal, Directions, Options } from 'foo';

    console.log(name);

    let myName = getName();

    let cat = new Animal('Tom');

    let directions = [Directions.Up, Directions.Down, Directions.Left, Directions.Right];

    let options: Options = {

    data: {

    name: 'foo'

    }

    };

    复制代码export default ES6 默认导出

    export = commonjs 导出模块

    。。。烂尾,感觉没啥好写的,很好理解

    内容从此处摘抄

    https://ts.xcatliu.com/basics/declaration-files.html#%E4%B9%A6%E5%86%99%E5%A3%B0%E6%98%8E%E6%96%87%E4%BB%B6

    复制代码

    展开全文
  • TypeScript 声明文件TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript 诸如类型检查等特性功能。...

    TypeScript 声明文件

    TypeScript 作为 JavaScript 的超集,在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法,但是却无法使用TypeScript 诸如类型检查等特性功能。为了解决这个问题,需要将这些库里的函数和方法体去掉后只保留导出类型声明,而产生了一个描述 JavaScript 库和模块信息的声明文件。通过引用这个声明文件,就可以借用 TypeScript 的各种特性来使用库文件了。

    假如我们想使用第三方库,比如 jQuery,我们通常这样获取一个 id 是 foo 的元素:

    $('#foo');

    // 或

    jQuery('#foo');

    但是在 TypeScript 中,我们并不知道 $ 或 jQuery 是什么东西:

    jQuery('#foo');

    // index.ts(1,1): error TS2304: Cannot find name 'jQuery'.

    这时,我们需要使用 declare 关键字来定义它的类型,帮助 TypeScript 判断我们传入的参数类型对不对:

    declare var jQuery: (selector: string) => any;

    jQuery('#foo');

    declare 定义的类型只会用于编译时的检查,编译结果中会被删除。

    上例的编译结果是:

    jQuery('#foo');

    声明文件

    声明文件以 .d.ts 为后缀,例如:

    runoob.d.ts

    声明文件或模块的语法格式如下:

    declare module Module_Name {

    }

    TypeScript 引入声明文件语法格式:

    ///

    当然,很多流行的第三方库的声明文件不需要我们定义了,比如 jQuery 已经有人帮我们定义好了:jQuery in DefinitelyTyped。

    实例

    以下定义一个第三方库来演示:

    CalcThirdPartyJsLib.js 文件代码:

    varRunoob;(function(Runoob){varCalc=(function(){functionCalc(){}})Calc.prototype.doSum=function(limit){varsum=0;for(vari=0;i<=limit;i++){sum=sum+i;}returnsum;}Runoob.Calc=Calc;returnCalc;})(Runoob||(Runoob={}));vartest=newRunoob.Calc();

    如果我们想在 TypeScript 中引用上面的代码,则需要设置声明文件 Calc.d.ts,代码如下:

    Calc.d.ts 文件代码:

    declaremoduleRunoob{exportclassCalc{doSum(limit:number):number;}}

    声明文件不包含实现,它只是类型声明,把声明文件加入到 TypeScript 中:

    CalcTest.ts 文件代码:

    /// varobj=newRunoob.Calc();//obj.doSum("Hello"); // 编译错误console.log(obj.doSum(10));

    下面这行导致编译错误,因为我们需要传入数字参数:

    obj.doSum("Hello");

    使用 tsc 命令来编译以上代码文件:

    tsc CalcTest.ts

    生成的 JavaScript 代码如下:

    CalcTest.js 文件代码:

    /// varobj=newRunoob.Calc();//obj.doSum("Hello"); // 编译错误console.log(obj.doSum(10));

    最后我们编写一个 runoob.html 文件,引入 CalcTest.js 文件及第三方库 CalcThirdPartyJsLib.js:

    实例

    菜鸟教程(runoob.com)

    声明文件测试

    菜鸟测试一下。

    浏览器打开该文件输出结果如下:

    展开全文
  • 项目文件DebugAnyCPU2.0{942BF143-5F6F-407C-B112-F598D25E001E}{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}Library1.0Propertieswebsitewebsitev4.0truetruefullfalsebin\...

    项目文件

    Debug

    AnyCPU

    2.0

    {942BF143-5F6F-407C-B112-F598D25E001E}

    {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

    Library

    1.0

    Properties

    website

    website

    v4.0

    true

    true

    full

    false

    bin\

    DEBUG;TRACE

    prompt

    4

    pdbonly

    true

    bin\

    TRACE

    prompt

    4

    Designer

    Global.asax

    index.aspx

    ASPXCodeBehind

    index.aspx

    Login.aspx

    ASPXCodeBehind

    Login.aspx

    ValidateCode.aspx

    ASPXCodeBehind

    ValidateCode.aspx

    Web.config

    Web.config

    10.0

    $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)

    ES5

    false

    true

    AMD

    ES5

    true

    false

    AMD

    True

    True

    0

    /

    http://localhost:31620/

    False

    False

    False

    注意的部分

    1.0  使用1.0版本的ts

    ES5

    false

    true

    AMD

    ES5

    true

    false

    AMD

    以上的代码就是差别的地方

    其实最简单的办法,就是安装完相关的文件后, 新建一个ts的项目(ts类型项目会自动生成js文件)。 然后比较和普通网站项目的不同 (*.csproj文件),添加相关内容就行。

    展开全文
  • ts声明文件类型https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types已定义 npm install @types/jquery --save-dev与npm一同发布解释: package.json 中有 types 字段,或者有一个 index.d.ts ...
  • NodeJs安装typescript模块:npm install -g typescript首先,创建一个目录作为工作目录,该目录的结构如下:+-- index.html+-- build| +-- webpack.config.js+-- src| +-- main.ts目录结构说明:index.html文件用来在...
  • webstorm typescript自动编译javascript配置:1. 安装nodejs2. 安装typescript编译器:npm install typescript -g3. 配置webstorm:(1) 添加FileWatcherProgram:tsc的路径Arguments:--sourcemap --target "ES5...
  • webstorm配置TS运行时环境与自动编译Step 1 安装TypeScipt$ npm i typescript -gStep 2 设置webstorm languageStep 3 设置File Watch添加file watch类型file watch详细配置output path说明:$FileDir$$...
  • 最近为Dynamic Web TWAIN的JavaScript接口编写了一份.d.ts文件。这个文件就像C/C++用.h文件。... 使用TypeSearch可以找到已经发布的TypeScript声明文件,比如dwt。安装方法:npm install --save @types/dwt创...
  • 刚开始学习Typescript时,都会需要在命令行输入命令去编译.ts文件为.js文件才能正常测试自己写的ts代码是否有效,现在有了vscode的自动编译功能,不需要输入命令操作了,只需要保存.ts文件,vscode自动编译为.js文件...
  • 2、点击菜单 任务-运行任务 选择 tsc:监视-tsconfig.json然后就可以自动生成代码 修改文件index.js: 保存,就可以看到生成了index.js文件,内容如下: HBuilder X自动编译.ts文件的配置: 1、菜单栏:工具–插件...
  • 作者 | 马靖day day up, bye bye bug最近在做一个新项目,技术大佬告知前端要用 TS 。前端小白的我内心疑惑“弱类型语言它不香嘛,为什么选择 TS ?” 为了紧随大佬的流星大步,拥抱变化。带着这个疑惑我积(被)极(破...
  • TS入门笔记4——TS的类型断言(解释型类型转换)1.什么是类型断言?个人理解类型断言主要分为两种含义: (1)解释型强制类型转换(个人理解)(2)类型断言就是告诉编译器, 你不要帮我们检查了, 相信我,它就是这个...
  • TypeScript的代码最终会被编译为JavaScript, 运行到不同的JavaScript环境中:浏览器 - Chrome,Firefox, Edge, IE,以及大量中国本土定制的浏览器服务器 - Nodejs为主App - 比如微信嵌入式JS引擎 - 比如某些数据库...
  • 往期目录第一课, 体验typescript第二课, 基础类型和入门高级类型第三课, 泛型第...第六课, 什么是声明文件(declare)? - 全局声明篇全局声明篇年底比较忙 , 受个人时间限制, 暂把"声明"部分的内容分为&quot;全局...
  • typescript 打包自动生成声明文件

    千次阅读 2020-04-24 15:34:39
    这时,我们需要配置 tsconfig.json 文件,在 typescript 官方文档中,编译选项,在这里找到与生成相应的 .d.ts 文件和 声明文件 相关的选项,其中包括: –declaration –declarationDir –types –typeRoots ...
  • TypeScript中的声明文件(.d.ts

    千次阅读 2020-08-17 17:51:30
    我们知道,Typescript是微软开发的语言,主要是为了自动帮助大家类型检查以及更好的使用面向对象,让使用面向对象开发的人员可以更好的理解Javascript,当然在实际开发过程中TypeScript还是会编译为Javascript,这样...
  • svg-to-ts可以将svg-to-ts转换为具有导出常量的一个TypeScript文件,多个TypeScript文件或具有相应声明文件的已编译JavaScript文件。 此外,它以接口和类型的形式生成所有类型。 然后可以将生成的输出与...
  • 2021-03-05 TS的使用

    2021-03-05 20:12:39
    1. 初次学习TS的内容 TS:TypeScript,个人理解是规范JS代码书写的一种...自动编译JS: 终端输入 : tsc --init 这样会生成一个配置文件 将其中严格模式改为false 即不启用严格模式 outDir显示一个路径,可以在该文
  • TypeScript系列(一)- TypeScript简介一. TypeScript简介1.1 TS类型声明1.2 TS中的类型1.2.1 ... 编译器选项2.1 自动编译文件2.2 tsconfig.json配置文件 一. TypeScript简介 TypeScript是以JavaScript为基础构建的语
  • 这将从目录中的C ++代码创建文件source/WasmModule.js和source/WasmModule.d.ts ,并将所有内容转换为dist目录中JavaScript模块。 要将代码构建为wasm,请将其作为CPM.cmake依赖项添加到文件中,并在源文件中定义...
  • Egg TS 改造总结

    2021-01-01 22:42:16
    会导致在编译或者代码提示上都会有不同层面的影响,而要解决这个问题主要有两种方案,一种是使用 shepherdwind 写的 <a href="https://github.com/shepherdwind/egg-di">egg-di</a> 提供的装饰器来做...
  • 目前最火、最具发展前景的专业游戏引擎 Unity 3D是什么?Unity3D是由Unity Technologies开发的一个让玩家...课时7 条件判断语句,鼠标按下事件处理,获取水平和垂直改变数值,改变对象位置,自动销毁对象 课时8 课程小结
  • typescript

    2021-02-25 09:57:53
    开发环境的搭建 node环境 创建xxx.ts文件 编译 tsc xxx.ts —> xxx.js 执行 node xxx.js 类型声明 let a:number;... //如果变量的声明和赋值是同时进行的,ts可以自动对变量进行类型检测 c = 10; //报错
  • TypeScript -- 入门篇

    2021-01-02 20:31:39
    环境安装与运行1.1 环境配置1.2 自动编译TS文件2. 常见类型总结 欢迎学习TypeScript TypeScript(简称TS),是Javascript的一个超集。你问为什么学习TS?同作为初学者,我目前的理解是,TS加强了类型声明变量类型的...
  • <a href="https://github.com/whxaxes/egg-ts-helper">egg-ts-helper</a> 可以用来自动生成 controller、service、proxy 目录的声明文件。 <h3>Extend <p>egg 可以很方便的被拓展,只需要在 extend 目录下添加...
  • Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其中有程序的.exe 可执行文件。但Qt Creator 默认是用动态链接的, 就是可执行程序在运行时需要相应的.dll 文件。我们点击生成的.exe 文件,首 先...
  • 新手学习C++入门资料

    2008-12-28 23:58:50
    上面例子中,第一次调用show()函数时,让编译器自动提供函数原型中指定的所有默认参数,第二次调用提供了第一个参数,而让编译器提供剩下的两个,第三次调用则提供了前面两个参数,编译器只需提供最后一个,最后一...
  • 11.1.2 关于自动转换的注意事项 192 11.2 特殊的转换函数 192 11.3 变换函数 193 11.3.1 TRANSLATE 193 11.3.2 DECODE 194 11.4 小结 195 第12章 分组函数 197 12.1 group by 和having 的用法 198 12.1.1 ...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

ts自动编译声明文件