如果你写下面的代码:
const e = document.body.firstChild;
if (e.nodeType === Node.TEXT_NODE)
console.log(e.data);
Run Code Online (Sandbox Code Playgroud)
您将在以下位置收到此错误e.data:
TS2339:“ChildNode”类型上不存在属性“data”。
而如果条件为真 ( e.nodeType === Node.TEXT_NODE) 则e除了常规ChildNode属性之外还有一些其他属性,例如data和wholeText。
我应该转换为什么类型(除了any)?
我有一个带有这个build.gradle文件的android模块:
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 14
targetSdkVersion 27
versionCode 1
versionName "1.0.0"
}
}
dependencies {
implementation 'com.android.support:support-compat:27.1.1'
}
Run Code Online (Sandbox Code Playgroud)
并且在Gradle同步过程中收到此错误:
无法解决:support-compat
我使用的依赖项标识符完全符合https://developer.android.com/topic/libraries/support-library/packages#v4-compat(当我写这个问题时).
有趣的是,问题仅27.1.1在于版本!我测试的所有其他版本(24.2.0,26.0.0,27.0.0甚至27.1.0)都OK.
此外,我从此版本(27.1.1)测试的所有其他支持库都可以.这里列出了它们:
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:gridlayout-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:support-v4:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.android.support:support-annotations:27.1.1'
Run Code Online (Sandbox Code Playgroud)
Screanshot:
如果我在app模块或library模块中插入依赖项没有区别.
我的项目级build.gradle文件:
buildscript {
repositories {
jcenter() …Run Code Online (Sandbox Code Playgroud) android android-support-library dependency-resolution gradle-dependencies
我想了解摩纳哥编辑器默认创建的错误。

当我尝试创建一个新的Angular Cli项目时:
在IDE 执行命令几秒钟后收到此消息(在运行窗口中)ng new angularcli --dir=.:
"C:\Program Files\nodejs\node.exe" C:\Users\I\AppData\Roaming\npm\node_modules\@angular\cli\bin\ng new angularcli --dir=.
Error: Schematic input does not validate against the Schema: {"directory":".","name":"angularcli","skipGit":false,"style":"css","version":"1.7.3","commit":{"message":"chore: initial commit from @angular/cli\n\n _ _ ____ _ ___\n / \\ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|\n / ? \\ | '_ \\ / _\\` | | | | |/ _\\` | '__| | | | | | |\n / ___ …Run Code Online (Sandbox Code Playgroud) 这有效:
for (char c : sourceString.toCharArray())
destString += (char) (c + shiftValue);
System.out.println(destString);
Run Code Online (Sandbox Code Playgroud)
是否有更好/更快(优化)的方式?
有没有办法使以下代码与较低的API级别兼容:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:attr/selectableItemBackground"/>
<item android:gravity="bottom">
<shape android:shape="rectangle">
<size android:height="1px"/>
<solid android:color="#ccc"/>
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
部分:android:drawable="?android:attr/selectableItemBackground"产生此消息:
在XML drawable中使用主题引用需要API级别21(当前最小值为15)
在我的 IntelliJ/Grade/Java 项目中设置sourceCompatibility和targetCompatibility到JavaVersion.VERSION_11没有预期的效果。
即使我设置项目SDK和项目语言水平在项目结构手动11,之后我恢复了8和6 刷新摇篮项目(或导入的变化)。见下图:
确保我创建了一个新项目并在其中测试这些。这是它的树视图:
唯一的build.gradle文件:
plugins {
id 'java'
}
group 'test'
version '1.0-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
Run Code Online (Sandbox Code Playgroud)
Gradle 版本4.10.2与您在gradle-wrapper.properties文件中看到的一样:
#Tue Nov 13 00:53:45 IRST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
Run Code Online (Sandbox Code Playgroud)
这是环境信息:
IntelliJ IDEA 2018.1.5 (Community Edition) …Run Code Online (Sandbox Code Playgroud) 我想要使用sun.awt.image.PNGImageDecoder在我的项目中使用的一些代码.问题是源代码基于Java 8和我的项目使用JDK 9+(11).所以我收到了这个错误:
包'
sun.awt.image'在模块'java.desktop'中声明,它不会将其导出到未命名的模块.
为import sun.awt.image.*,和:
符号在模块'
java.desktop'中声明,它不导出包'sun.awt.image'
使用PNGImageDecoder或ImageDecoder等
在寻找解决方案的一些努力之后,我发现了一些类似的情况,建议添加requires java.desktop;到module-info.java文件(像这种情况和这种情况).但是当我意识到这个解决方案只有在你的项目已经有一个module-info.java文件并且你遗漏了一个用过的模块时才有用.
我的项目已经没有此文件(请注意第一条错误消息中的" 未命名模块 ").据我所知,这意味着所有模块都是自动导入的.所以添加这个文件并添加该行没有任何影响,除了(更改错误消息和)导致我的代码的其他部分出现一些类似的问题(当然,这可以通过向module-info.java文件添加所需的模块来解决).
确保我在jmods文件夹(JDK 11)中导入了所有模块,但问题没有解决:
requires java.base;
requires java.compiler;
requires java.datatransfer;
requires java.desktop;
requires java.instrument;
requires java.logging;
requires java.management;
requires java.management.rmi;
requires java.naming;
requires java.net.http;
requires java.prefs;
requires java.rmi;
requires java.scripting;
requires java.se;
requires …Run Code Online (Sandbox Code Playgroud) java java-platform-module-system java-9 java-module module-info
在 Java 中,我们有 4 个可见性级别。除了public和 之外private,我们还有protected级别和默认级别(没有修饰符),也称为“package-local”或“package-private”。
| 修饰符 | 班级 | 包裹 | 子类 | 世界 |
|---|---|---|---|---|
| 民众 | 是 | 是 | 是 | 是 |
| 受保护的 | 是 | 是 | 是 | X |
| 无修饰符 | 是 | 是 | X | X |
| 私人的 | 是 | X | X | X |
请参阅:https ://www.programcreek.com/2011/11/java-access-level-public-protected-private/
我特别需要 Javascript 中的“包私有”级别。Javascript 模块有类似的方法吗?
我正在编写一个库(NPM包),并且我想要export一些东西(function、class等),但不在模块的公共 API 中(由库的使用者使用)。只是为了在我的模块文件之间本地使用。
我需要将mat-table组件的Header固定在顶部,但这不起作用。
我有Angular v6.1.7和@ angular / material v6.4.7。
我在matHeaderRowDef上添加了“ sticky:true”属性,就像有人在这里提到的那样,但是它什么也没做:(
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
Run Code Online (Sandbox Code Playgroud)
我有这个示例项目:https : //stackblitz.com/edit/angular-wem2qa
这是我在TS文件上的导入:
import { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from "@angular/core";
import { MatDialog, MatExpansionPanel, MatSnackBar, MatSort, MatTableDataSource, Sort } from "@angular/material";
Run Code Online (Sandbox Code Playgroud) android ×2
java ×2
javascript ×2
angular ×1
angular-cli ×1
arrays ×1
child-nodes ×1
directory ×1
dom ×1
dom-node ×1
export ×1
gradle ×1
java-11 ×1
java-8 ×1
java-9 ×1
java-module ×1
java-platform-module-system ×1
material ×1
module ×1
module-info ×1
npm ×1
shift ×1
string ×1
textnode ×1
typescript ×1
webstorm ×1
xml-drawable ×1