小编mic*_*elT的帖子

Javascript 文档:返回 null 或类型

我有一个 js 类的函数,它可以返回 String 或undefined. 现在我想将该return语句插入到函数的文档中。

\n
    /**\n     * Test documentation.\n     * \n     * @param {(String|Number)} value - A String or a number containing a number.\n     * \n     * @returns {(String|undefined)} - Returns a String or undefined.\n     */\n    nullOrString(value) {\n        // ...\n    }\n
Run Code Online (Sandbox Code Playgroud)\n

但是当我调用该函数时,该return语句的文档仅返回String而不返回(String | undefined)。\n我也尝试使用null而不是undefined,因为undefined默认情况下所有没有返回的函数都会返回return

\n

那么如何将返回的undefinedor添加到我的文档中呢null

\n

编辑: \n添加另一个测试函数。\n请注意,这些示例是测试函数,不一定有意义。

\n
     /**\n     * Test documentation function.\n …
Run Code Online (Sandbox Code Playgroud)

javascript jsdoc

9
推荐指数
1
解决办法
9231
查看次数

Typescript:带有枚举的泛型函数

我使用几个枚举作为全局参数。

enum color {
    'red' = 'red',
    'green' = 'green',
    'blue' = 'blue',
};
enum coverage {
    'none' = 'none',
    'text' = 'text',
    'background' = 'background',
};
Run Code Online (Sandbox Code Playgroud)

我将所有枚举合并为一个类型myEnums

type myEnums = color | coverage;
Run Code Online (Sandbox Code Playgroud)

现在我想检查并访问枚举的值。例如:

// Returns undefined if the argument value is not a color.
function getColor(value: string): color | undefined{
    if(value in color) return value as color;
    return undefined;
}
Run Code Online (Sandbox Code Playgroud)

因为有多个枚举,所以我想创建一个通用函数来访问所有枚举。我尝试了以下方法:

function getParam<T extends myEnums>(value: string): T | undefined {
    if(value in T) return value as …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-generics

8
推荐指数
1
解决办法
4670
查看次数

Typescript:从联合类型中排除未定义

Options 我创建了一个自定义类型(嵌套对象)。我想使用该类型DefaultProperties创建一个包含默认属性的对象。

type Options = {
    id: number,
    text: string | undefined,
    properties: {
        title: string,
        subtitle: string | undefined,
    }
}

type DefaultProperties = Pick<Options, "properties">;
Run Code Online (Sandbox Code Playgroud)

当然默认属性不能是undefined。所以我想undefined从我的联合类型中排除。为此,应该有一个内置函数,如NonNullable<T>Exclude<T,UnionType>

我尝试了三种不同的删除方法,undefined但没有解决方案适合我的类型。

type Options = {
    id: number,
    text: string | undefined,
    properties: {
        title: string,
        subtitle: string | undefined,
    }
}

type DefaultProperties = Pick<Options, "properties">;


// Try #1: does not work
type Type1 = NonNullable<DefaultProperties>;

// Try …
Run Code Online (Sandbox Code Playgroud)

typescript

6
推荐指数
1
解决办法
3247
查看次数

Visual Studio Code 和 Django:导入用户模型时出错

编辑:仍然有这个问题。

Visual Studio Code 抛出以下错误:

User model imported from django.contrib.models

该错误出现在以下脚本 ( models.py) 的第 2 行中。该代码来自 Django 教程,运行良好。但令人烦恼的是 Visual Studio Code ( Pylint ) 会抛出错误(并将脚本标记为红色)。

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone

# Create your models here.


class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return self.title
Run Code Online (Sandbox Code Playgroud)

此外,VSC 在导入自定义模型时会引发错误,例如Post.

from app_blog.models import Post

错误:无法导入“app_blog.models”

我的设置:

  • WIN10
  • 虚拟环境(Python、Django、Pylint...)
  • 姜戈3.1.1
  • Python 3.8.5
  • 皮林特·姜戈 …

django pylint django-models visual-studio-code

5
推荐指数
1
解决办法
2143
查看次数

Node:将 ES6 JS 模块合并到一个 .min.js 文件

我前段时间创建了一个包含自定义元素的小型 JS/CSS 框架。现在我想使用npmnode.js改进我的工作流程(编译、合并、最小化......) ,所以我对此非常陌生。

每个组件(模块)都编写在单独的.js文件中。一个或多个组件之间可能存在依赖关系,例如:

文件: src/modules/component_1.js

class Component_1{
    // Code ...
}
export{
    Component_1
}
Run Code Online (Sandbox Code Playgroud)

文件: src/modules/component_2.js

import {Component_1} from './component_1.js';
class Component_2{
    // Code ...
}
export{
    Component_2
}
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的结构:

my-project/
|-- js/
|   |-- components.js 
|   |-- components.min.js
|-- src/
|   |-- modules/
|       |-- component_1.js
|       |-- component_2.js
|       |-- ...
|       |-- component_30.js
Run Code Online (Sandbox Code Playgroud)
  • 我希望我的.js文件src/modules/保持不变。因此,我可以使用这些文件添加新功能等,然后我可以创建新的生产 .js文件js/components.min.js
  • 我想将其实现为脚本,以便我可以通过控制台调用它,例如npm ruin build-js
  • 第 …

javascript node.js npm es6-modules

5
推荐指数
1
解决办法
1450
查看次数

Typescript:为用 TS 编写的 UMD 模块创建声明

我在 TS 中写了一个小库用于学习目的。我正在使用 webpack 从我的打字稿创建 JS UMD 模块。

我的项目结构如下所示:

|-dist
    |-js
        |-my-lib.min.js    // Minified library as UMD module
|-src
    |-ts
        |-types
        |-interfaces
        |-utils
        |-components
            |-button.ts
            |-textField.ts
            |-dropdownMenu.ts
        |-my-lib.ts    // Source file for UMD lib
Run Code Online (Sandbox Code Playgroud)

my-lib.ts文件:

import {Button} from './components/button';
import {TextField} from './components/textField';
import {DropdownMenu} from './components/dropdownMenu';

export {
    Button,
    TextField,
    DropdownMenu,
}
Run Code Online (Sandbox Code Playgroud)

因此,当在 HTML 中包含my-lib.min.jsvia时src,我可以使用我的组件,例如:(UMD 模块以 webpack 命名myLib)。

const username = new myLib.TextField();
Run Code Online (Sandbox Code Playgroud)

现在我想在新的 ts 项目中使用我的库。我不希望交付 TS 文件,而只想交付声明。这样我就可以像使用 JS UMD 模块一样使用我的 …

typescript webpack typescript-declarations

5
推荐指数
1
解决办法
1166
查看次数

SASS:将@extend 与@use 一起使用

我有以下两个文件:

main.scss
|- base
|  |- _typography.scss
Run Code Online (Sandbox Code Playgroud)

_typography.scss文件包含:

$font-family: Roboto;

%typo-button{
    font-family: $font-family;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
}
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用占位符来@extend上课main.scss%typo-button.

@use 'base/typography';

.button{
    display: inline-block;
    height: 48px;
    padding: 12px 0px;
    @extend typography.%typo-button;
}
Run Code Online (Sandbox Code Playgroud)

抛出以下错误:

Error: Expected identifier.
?     @extend typography.%typo-button;
Run Code Online (Sandbox Code Playgroud)

那么,什么是使用正确的语法@extend@use@use与 a 一起使用@mixin没有问题,例如@include typography.my-mixin(). 但我想@extend在某些情况下使用而不是混合。

sass extend

3
推荐指数
2
解决办法
716
查看次数