Skip to content

Latest commit

 

History

History
74 lines (52 loc) · 1.96 KB

triple-slash-reference.md

File metadata and controls

74 lines (52 loc) · 1.96 KB

triple-slash-reference

Disallows certain triple slash directives in favor of ES6-style import declarations.

Use of triple-slash reference type directives is discouraged in favor of the newer import style. This rule allows you to ban use of /// <reference path="" />, /// <reference types="" />, or /// <reference lib="" /> directives.

Rule Details

With { "path": "never", "types": "never", "lib": "never" } options set, the following will all be incorrect usage:

/// <reference path="foo" />
/// <reference types="bar" />
/// <reference lib="baz" />

Examples of incorrect code for the { "types": "prefer-import" } option. Note that these are only errors when both styles are used for the same module:

/// <reference types="foo" />
import * as foo from 'foo';
/// <reference types="foo" />
import foo = require('foo');

With { "path": "always", "types": "always", "lib": "always" } options set, the following will all be correct usage:

/// <reference path="foo" />
/// <reference types="bar" />
/// <reference lib="baz" />

Examples of correct code for the { "types": "prefer-import" } option:

import * as foo from 'foo';
import foo = require('foo');

Options

type Options = {
  lib?: 'always' | 'never';
  path?: 'always' | 'never';
  types?: 'always' | 'never' | 'prefer-import';
};

const defaultOptions: Options = {
  lib: 'always',
  path: 'never',
  types: 'prefer-import',
};

When To Use It

If you want to ban use of one or all of the triple slash reference directives, or any time you might use triple-slash type reference directives and ES6 import declarations in the same file.

When Not To Use It

If you want to use all flavors of triple slash reference directives.

Related To