标签: tslint

Typescript:require语句不是import语句的一部分

打字稿版本2.2.2

我在UserRoutzr.ts中写了这个要求

const users = <IUser[]> require(path.join(process.cwd() + "/data"));
Run Code Online (Sandbox Code Playgroud)

TSLint提出以下警告:

require statement not part of an import statement
Run Code Online (Sandbox Code Playgroud)

如果我改为:

import users = <IUser[]> require(path.join(process.cwd() + "/data"));
Run Code Online (Sandbox Code Playgroud)

然后它引发了一个错误:

TS1003 Identifier expected
Run Code Online (Sandbox Code Playgroud)

我该如何重写这个要求?谢谢你的反馈

typescript tslint

12
推荐指数
2
解决办法
2万
查看次数

如何lint for Typescript编译问题?

采用以下Typescript箭头功能:

/**
 * Returns a probably unique component name.
 * 
 * @param baseName a suggested name to make unique.
 * @returns a probably unique name.
 */
export const getUniqueComponentName = (
  baseName
): string => {
  return baseName + Math.round(Math.random() * 10000000)
}
Run Code Online (Sandbox Code Playgroud)

当Typescript配置tsconfig.json为这样时:

"noImplicitAny": true,
Run Code Online (Sandbox Code Playgroud)

这正确导致编译错误:

[ts]参数'baseName'隐式具有'any'类型.

Visual Studio Code也非常智能,可以在开发过程中告知您这个问题.

我的目标是创建一个precommit git hook,以防止此类错误在版本控制中结束.我试着这样做tslint,huskylint-staged使用这个npm script:

"lint": "tslint --project tsconfig.json --config tslint.json"
Run Code Online (Sandbox Code Playgroud)

但是,这不会导致tslint显示编译错误.它被默默地忽略了.

然后我尝试在tslint.json中添加一条规则:

"typedef": [
      true,
      "arrow-parameter"
    ]
Run Code Online (Sandbox Code Playgroud)

虽然这确实让tslint抱怨,但它也开始抱怨匿名箭头函数,tsc …

pre-commit-hook typescript tslint husky lint-staged

12
推荐指数
1
解决办法
2971
查看次数

将 `'react'` 替换为 `"react"` eslint(prettier/prettier)

当地环境:

  • IDE:vscode
  • 语言模式:JavasSript React
import React from 'react';
Run Code Online (Sandbox Code Playgroud)

出现语法错误消息:

Replace `'react'` with `"react"`eslint(prettier/prettier)
Run Code Online (Sandbox Code Playgroud)

我该如何配置它?


.eslintrc.js

Replace `'react'` with `"react"`eslint(prettier/prettier)
Run Code Online (Sandbox Code Playgroud)

谢谢您的回答。 Rules可以解决

但我想知道从哪里来@react-native-community。我没有看到这个文件。

javascript reactjs eslint tslint react-native

12
推荐指数
1
解决办法
3万
查看次数

在vscode中,具有isWatching的任务生成的错误在修复后并不总是被清除

我在vscode(0.9)中使用gulp任务来尝试从typescript和tslint中获取错误.

gulp任务正在监视我的ts文件的更改,并在更改时运行gulp-tslint和gulp-typescript.我还在vscode tasks.json和问题匹配器中定义了一个任务来解析结果.

解析错误并将其正确报告给vscode.但是,即使修复和保存代码,有时也会保留它们.

是否有一些额外的配置提供给vscode问题匹配器,以便它正确清除错误或它是一个vscode错误?作为一种解决方法,有一种方法可以手动清除所有错误吗?我发现清除它们的唯一方法是重启vscode并不是很好.

请注意,如果任务不是监视任务而是简单执行,则此方法可以正常工作.

我的vscode tasks.json

{
    "version": "0.1.0",
    "command": "gulp",
    "isShellCommand": true,
    "tasks": [
        {
            "taskName": "watch",
            // Make this the default build command.
            "isBuildCommand": true,
            // Watching
            "isWatching": true,
            // Show the output window only if unrecognized errors occur.
            "showOutput": "always",
            // Use the standard less compilation problem matcher.
            "problemMatcher": [
                {
                    "owner": "gulp-tslint",
                    "fileLocation": [
                        "relative",
                        "${workspaceRoot}/app"
                    ],
                    "pattern": {
                        "regexp": ".*\\[gulp-tslint\\] (error|warning) (.*)\\[(\\d*), (\\d*)\\]: (.*)",
                        "severity": 1,
                        "file": 2,
                        "line": 3,
                        "column": 4,
                        "message": …
Run Code Online (Sandbox Code Playgroud)

tsc gulp tslint visual-studio-code

11
推荐指数
1
解决办法
971
查看次数

什么是tslint黑名单以及为什么angular-cli在tslint.json列表中默认rxjs?

默认情况下,使用angular-cli项目,tslint设置包含了波动的东西.我最近接触过一个新的开发人员,我在Atom中配置了他们的tslint实例.

我被问到以下几行:

import { Observable, BehaviorSubject } from 'rxjs';
Run Code Online (Sandbox Code Playgroud)

TSLinter说rxjs被列入黑名单.我去了tslint.json文件,果然,它被列出了.

什么是黑名单,它是否保护应用程序免受某些侵害?

为什么rxjs默认添加到列表中?

我应该在什么条件下添加其他东西呢?


我想指出我知道如何'解决'这个问题::

import { Observable } from 'rxjs/observable';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
Run Code Online (Sandbox Code Playgroud)

问题仍然在于TSLint背景下黑名单的含义.

rxjs tslint angular-cli

11
推荐指数
2
解决办法
3336
查看次数

TSLint - 防止错误:密钥不按字母顺序排序

我正在用Ionic2/Cordova/Typescript/Angular做一个测试应用程序.我正在使用tslint 5.6.0.

我正在使用以下模块:https: //www.npmjs.com/package/tslint

专注于一个文件......

当linting以下文件时:

import { NgModule, ErrorHandler } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { IonicApp, IonicModule, IonicErrorHandler } from "ionic-angular";
import { MyApp } from "./app.component";

import { AboutPage } from "../pages/about/about";
import { ContactPage } from "../pages/contact/contact";
import { HomePage } from "../pages/home/home";
import { TabsPage } from "../pages/tabs/tabs";

import { StatusBar } from "@ionic-native/status-bar";
import { SplashScreen } from "@ionic-native/splash-screen";

@NgModule( {
    declarations: [
        MyApp,
        AboutPage,
        ContactPage, …
Run Code Online (Sandbox Code Playgroud)

lint typescript reactjs tslint typescript2.0

11
推荐指数
2
解决办法
2万
查看次数

对象或数组的首选声明约定是什么:const 还是 let?

我不是在问什么是技术上可能的;我知道你可以

const a = [];
const b = {};
a.push['sup'];
b.test = 'earth';
Run Code Online (Sandbox Code Playgroud)

我想知道的是letconst当涉及到要修改其内部结构的数组和对象时,是否有任何优先考虑的约定。如果您看到一个用 声明的对象const,您是否认为该对象的意图是使该对象不可变,并且您更愿意看到它let,或者,由于某些 linter(如 tslint)对此有问题,最好只是声明const并相信其他阅读代码的人都知道这并不意味着它是不可变的?

javascript standards tslint

11
推荐指数
2
解决办法
5168
查看次数

如何让TSLint解决与Yarn工作区的间接类型依赖关系?

上下文

纱线工作空间提供了一种依赖单声道包装的便捷方式.当包A依赖于包B时,包B中定义的接口等在包A中被适当地解析.

问题

我面临的问题是,如果包B依赖于外部库,但外部库缺少打字,因此包B创建了自己的some-library.d.ts文件.当使用tslintlint包A时,对于包B中的表达式,此自定义定义文件已正确解析,但对于包A中与包B中的类型一起使用的表达式则无法解析.

我在这里推出了一个简单的例子:

https://github.com/tommedema/tslint-yarn-workspaces

它的核心如下.

包/ A/src目录/ index.ts

// tslint:disable:no-console

import { someDependedFn } from 'b'

export const someDependingFn = (): void => {
  const someNr = someDependedFn('pascal-case-me')
  console.log(someNr)
}
Run Code Online (Sandbox Code Playgroud)

包/ B/src目录/ index.ts

import camelCase from 'camelcase'

export const someDependedFn = (str: string): string => {
  const camelStr = camelCase(str, { pascalCase: true })

  return camelStr
}
Run Code Online (Sandbox Code Playgroud)

包/ B/src目录/分型/驼峰/ index.d.ts

// Type definitions for camelcase 5.0
// Project: https://github.com/sindresorhus/camelcase

// tslint:disable only-arrow-functions …
Run Code Online (Sandbox Code Playgroud)

typescript tslint yarnpkg yarn-workspaces

11
推荐指数
1
解决办法
789
查看次数

使 compilerOptions 在 tsconfig 中生成警告而不是错误

有没有办法在 tsconfig.json 文件中将选项 noUnusedLocals 和 noUnusedParameters 指示为警告而不是阻止编译的错误?

目前我在 tsconfig.json 文件中使用它们,如下所示:

  "compilerOptions": {
    "noUnusedLocals": true,
    "noUnusedParameters": true
  },
Run Code Online (Sandbox Code Playgroud)

我试过这个选项:

“没有未使用的变量”:真,

在 tslint.json 文件中,但它没有检测到像 tsc 这样的错误,并且在 Visual Studio 代码中我看不到它们带有下划线。

typescript tslint visual-studio-code

11
推荐指数
1
解决办法
6484
查看次数

如何解决 Typescript 中的“此元素无法重命名”?

是什么导致 VS Code 编辑器决定我的打字稿符号无法重命名?我试图用键更改符号f2并遇到错误消息“此元素无法重命名”。

在此输入图像描述

尽管在我的其他一些项目中,允许通过 f2 重命名符号。当我尝试解决此问题时,我希望了解有关此问题的更多信息,以便我可以知道它是否是包问题、vscodes 配置或在 monorepo 项目中具有类似的符号名称是否会导致此问题?


"@typescript-eslint/eslint-plugin": "4.3.0",
"@typescript-eslint/parser": "4.3.0",
"typescript": "4.1.5"
Run Code Online (Sandbox Code Playgroud)

intellisense typescript eslint tslint visual-studio-code

11
推荐指数
1
解决办法
3786
查看次数