打字稿版本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箭头功能:
/**
* 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
,husky
并lint-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 …
当地环境:
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
。我没有看到这个文件。
我在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) 默认情况下,使用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背景下黑名单的含义.
我正在用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) 我不是在问什么是技术上可能的;我知道你可以
const a = [];
const b = {};
a.push['sup'];
b.test = 'earth';
Run Code Online (Sandbox Code Playgroud)
我想知道的是let
,const
当涉及到要修改其内部结构的数组和对象时,是否有任何优先考虑的约定。如果您看到一个用 声明的对象const
,您是否认为该对象的意图是使该对象不可变,并且您更愿意看到它let
,或者,由于某些 linter(如 tslint)对此有问题,最好只是声明const
并相信其他阅读代码的人都知道这并不意味着它是不可变的?
上下文
纱线工作空间提供了一种依赖单声道包装的便捷方式.当包A依赖于包B时,包B中定义的接口等在包A中被适当地解析.
问题
我面临的问题是,如果包B依赖于外部库,但外部库缺少打字,因此包B创建了自己的some-library.d.ts
文件.当使用tslint
lint包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) 有没有办法在 tsconfig.json 文件中将选项 noUnusedLocals 和 noUnusedParameters 指示为警告而不是阻止编译的错误?
目前我在 tsconfig.json 文件中使用它们,如下所示:
"compilerOptions": {
"noUnusedLocals": true,
"noUnusedParameters": true
},
Run Code Online (Sandbox Code Playgroud)
我试过这个选项:
“没有未使用的变量”:真,
在 tslint.json 文件中,但它没有检测到像 tsc 这样的错误,并且在 Visual Studio 代码中我看不到它们带有下划线。
是什么导致 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) tslint ×10
typescript ×6
eslint ×2
javascript ×2
reactjs ×2
angular-cli ×1
gulp ×1
husky ×1
intellisense ×1
lint ×1
lint-staged ×1
react-native ×1
rxjs ×1
standards ×1
tsc ×1
yarnpkg ×1